int func(int val) {
return val>0? ((val%10)*(val%10)+func(val/10)) : 0 ;
}
从低位开始求...递归到高位...当val/10==0的时候递归结束..
写的略简洁..
#include "stdio.h"
int fun(int d)
{
if(d>0)
{
printf("%d*%d+",d%10,d%10);
return (d%10)*(d%10)+fun(d/10);
}
return 0;
}
int main()
{
int d;
printf("输入一个整数:");
scanf("%d",&d);
printf("\b=%d",fun(d));
}
n位数还是n个数