程序中的一点小疑惑
/***任意给出一个自然数K,数K不为0,计算其各位数字的平方和k1,再计算k1的各位数字的平方和k2...重复此过程,最终将得到数1或145,,此时再做数的平方和运算,最终**结果始终是1或145.
*/
#include<stdio.h>
int main(int argc , char **argv)
{
int k,a[100],i;
printf("任意给出一个自然数(不为0)\n");
scanf("%d",&k);
while(k != 1 && k != 145)
{
printf("k = %d->",k);
i = 1;
while(k>0)
{
a[i++] = k % 10 ;
k /= 10 ;
}
k = 0;
i--;/*这个i--干嘛的?*/
while(i >= 1)
{
printf("%d*%d",a[i],a[i]);
if(i > 1)
printf("+");
k += a[i] * a[i];
i--;
}
printf("=%d\n",k);
}