会绕圈的数
2015-09-08 13:58
253 查看
问题描述:(会绕圈的数)任意一个正整数,把它的每一位数字都平方后相加得到一个数;将这个数的每一位数字再平方相加;依次进行就会产生循环现象。例如:1234。 1ˆ2+2ˆ2+3ˆ2+4ˆ2=1+4+9+16=30 3ˆ2+0ˆ2=9 9ˆ2=81 8ˆ2+1ˆ2=64+1=65 6ˆ2+5ˆ2=36+25=61 6ˆ2+1ˆ2=36+1=37 3ˆ2+7ˆ2=9+49=58 5ˆ2+8ˆ2=25+64=89 8ˆ2+9ˆ2=64+81=145 1ˆ2+4ˆ2+5ˆ2=1+16+25=42 4ˆ2+2ˆ2=16+4=20 2ˆ2+0ˆ2=4+0=4 4ˆ2=16 1ˆ2+6ˆ2=1+36=37 由于前面已出现过37,这时就产生了循环。
#include<stdio.h> int pfh(int a)//求其平方和 { int b,c; c=0; while(a>0) { b=a%10; c+=b*b; a=a/10; } return c; } void main() { int a[650],i,p,n,j,l; i=0; scanf("%ld",&n); while(l) { a[i]=n; p=pfh(n); n=p; for(j=0;j<=i;j++) if(p==a[j]) { l=0; a[i]=n; break; } i++; } for(j=0;j<i;j++) printf("%4d",a[j]); }
[/code]
相关文章推荐
- Struts2之—实现自己的结果集的定义ajax
- js jquery 关闭弹出页面 并刷新父页面(window.opener)
- xStream完美转换XML、JSON
- oc自学-分类和协议
- python学习web篇
- PPTV发布裸眼3D手机:中国联通加持,又一款“互联网生态手机”---ESM
- 旋转数组的最小数字(剑指offer 二分 O(log n))
- 前端进阶路线图
- winform 之1---窗体介绍
- Matlab函数——std,std2与mean,mean2区别
- linux下创建线程
- sql server 2008 不允许保存更改,您所做的更改要求删除并重新创建以下表 的解决办法
- JSP五个重要内置对象
- 关于GOROOT、GOPATH、GOBIN、project目录
- OpenCV在图像中寻找轮廓和计算图像中物体的凸包
- POJ 3579 Median (查找第k大的值)
- ifconfig查看、配置IP
- 【重构 改善既有代码的设计】之代码的坏味道
- jQuery知识总结
- 完全卸载mysql(停止服务、卸载相关程序、删除注册表