本文主要是介绍循环的数学应用————25.数平方和运算的问题,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
要求说明:任意给一个自然数k,数k不为0,计算其各位数字平方和k1,在计算k1的各位数字的平方和k2.....重复此过程,最终将得到1或145,此时再做数的平方和运算最终结果将始终是1或145.编写程序验证此过程。
//数平方和运算的问题
#include <stdio.h>
int main(int argc, char **argv)
{
long a[10];
int n,i;
p:printf("please input a number :\n"); //输入数n
scanf("%ld",&n);
if( n == 0) //如果输入是0,则重新输入
{
goto p;
}
while(n!=1 && n!= 145)
{
printf("n=%ld->",n);
i = 1;
while(n > 0)
{
a[i++] = n%10; //将n的个位数字放到数组中去
n /= 10;
}
n = 0;
i --;
while( i >= 1) //使用while语句将运算过程输出
{
printf("%ld*%ld",a[i],a[i]);
if(i > 1)
printf("+");
n += a[i]*a[i];
i--;
}
printf("=%ld\n",n); //输出最后的平方和
}
return 0;
}
样例输入输出;
please input a number :
9856232
n=9856232->9*9+8*8+5*5+6*6+2*2+3*3+2*2=223
n=223->2*2+2*2+3*3=17
n=17->1*1+7*7=50
n=50->5*5+0*0=25
n=25->2*2+5*5=29
n=29->2*2+9*9=85
n=85->8*8+5*5=89
n=89->8*8+9*9=145
这篇关于循环的数学应用————25.数平方和运算的问题的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!