空间换取时间题目,大家来研究下
http://acm.zju.edu.cn/show_problem.php?pid=15390.26秒
#include<stdio.h>
int add(int n)
{
int i,j;
if(n<3) return 0;
else if(n==3) return 1;
else
{
i=n/2;
j=n-i;
i=add(i);
j=add(j);
return i+j;
}
}
int main()
{
int i,j,k,n;
while (scanf("%d",&n)!=EOF)
{
printf("%d\n",add(n));
}
return 0;
} 0秒
#include<stdio.h>
const int l=10000;
int s;
int add(int n)
{
int i,j;
if(n<l)
if(s>-1) return s;
if(n<3) return 0;
else if(n==3) return 1;
else
{
i=n/2;
j=n-i;
i=add(i);
j=add(j);
if(n<l)
s=i+j;
return i+j;
}
}
int main()
{
int i,j,k,n;
for (i=0;i<l;i++) s=-1;
while (scanf(\"%d\",&n)!=EOF)
{
printf(\"%d\\n\",add(n));
}
return 0;
}
页:
[1]