首先判斷數字的位數,根據位數建立數組
然後分解開,分別保存在數組裏
再分別平方相加就行
#include?<stdio.h>int?ilength(int?x);//判斷數字位數的函數
void?myfun(int?*p,int?x);//分解數字保存在數組中的函數
int?main()
{
int?x;//需要計算的數字
int?*p;//需要建立的數組
int?i;//數字的位數?
int?sum;//保存平方和?
int?j;
x=23456;
sum=0;?
i=ilength(x); p=(int?*)malloc(i*sizeof(int));memset(p,0,i*sizeof(int));
myfun(p,x);
for(?j=0;j<i;j++)
{
sum=sum+p[j]*p[j];
}
free(p);?
printf("%d\n",sum);
return?0;
}
int?ilength(int?x)
{
int?i;
i=0;
while(x!=0)
{
i=i+1;
x=x?/10;
}
return?i;
}
void?myfun(int?*p,int?x)
{
while(x!=0)
{
*p=x?%?10;
x=x?/10;
p++;
}
return;
}