c++问题 急.........

来源:百度知道 编辑:UC知道 时间:2024/05/31 05:20:53
#include <iostream>
using namespace std;
int main()
{
int d(int );
int x(int );

int b,a[100],n,i;
cin>>n;
for(i=0;i<n;i++)
{
cin>>a[i];
}
for(i=0;i<n;i++)
{
b=a[i];
cout<<d(b)<<" "<<x(b)<<endl;
}
return 0;
}
int d(int b)
{
int sum,e[8190],t1,t2,q=0,t;
for(t1=0;t1<16384;t1++)
{
if((b-t1*2)>0&&(b-t1*2)%4==0)
{
t2=(b-t1*2)/4;
sum=t1+t2;
e[q]=sum;
q++;
}
for(q=1;q<8190;q++)
{
if(e[0]<e[q])
e[0]=e[q];
}

}if(e[0]>0)
return e[0];
else
return 0;

}
int x(int d)
{
int sum,c[8190],t1,t2,q=0,t;
for(t1=0;t1<16384;t1++)
{
if((d-t1*2)>0&&(d-t1*2)%4==0)
{
t2=(d-t1*2)/4;
sum=t1+t2;

楼主的算法是怎么来的?
#include <iostream>
using namespace std;
int main()
{
int d(int );
int x(int );

int b,a[100],n,i;
cin>>n;
for(i=0;i<n;i++)
{
cin>>a[i];
}
for(i=0;i<n;i++)
{
b=a[i];
cout<<d(b)<<" "<<x(b)<<endl;
}
return 0;
}

int d(int b)
{
int r;
r = b % 4;
if ((r & 1) == 1)
{
return 0;
}
return b / 4 + b % 4 / 2;
}

int x(int d)
{
int r;
r = d % 2;
if ((r & 1) == 1)
{
return 0;
}
return d / 2;
}

典型的ACM简单题,楼主在哪里做题啊?
楼主的没看懂,太复杂!
我做了,应该是对的吧:
#include <iostream>
#include <iomanip>

using namespace std;

int main()
{
int n, a;
cin >> n;
for(int i = 0; i < n; i++)
{
cin >> a;