|
0秒
#include<stdio.h>
const int l=10000;
int s[l];
int add(int n)
{
int i,j;
if(n<l)
if(s[n]>-1) return s[n];
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[n]=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;
} |
|