简单的C语言题目5-3

来源:百度知道 编辑:UC知道 时间:2024/06/07 07:01:33
#include <stdio.h>
int f(int n,int k)
{ int t;
if(k*k>n)return(0);
t=f(n-k*k,k+1);
printf("%d\n",k*k);
return(t+1);
}
main()
{ printf("f(98)=%d\n",f(98,1));
}
2.请指出下面的程序运行时的输出结果。
#include <stdio.h>
int f(int d[],int n,int k)
{ int i,v,c,t;
for(v=1,i=0;i<k;++i)v*=10;
for(i=c=0;i<n;++i){
t=d[i]/v; c+=t%10;
}
return(c);
}
main()
{ int data[6]={ 75,23,46,108, 56,333 };
int i;
for(i=0;i<2;++i)printf("Result[%d]=%d\n",i,f(data,6,i));
}

1.功能是输出一组平方数(从给定数开始),这组数的和小一个给出的数值,如f(20,2),输出:9 4 1 f(20)=7 ,例中输出如下:
36
25
16
9
4
1
f(98)=7

2.功能是为了统计,一个数组中每个位置上的数字总各,并输出,如十位,百位,~~,例中输出如下:
Result[0]=61
Result[1]=4

Result[0]=31
Result[1]=21