水仙花数——升级版
2015-01-22 22:32
92 查看
#include<stdio.h> #include<math.h> #define M 7 int sum[10][M]; void pow_1(int m) { int i,j,c; for(i=0;i<10;i++) for(j=0;j<M;j++) sum[i][j]=0; for(i=0;i<10;i++) sum[i][M-1]=pow(i,m); for(i=2;i<10;i++) { c=sum[i][M-1]; for(j=M-1;j>=M-m;j--) { sum[i][j]=c%10; c/=10; } } } int main() { int n,i,j,k,t,m; int a[M],c[M]; int d,flag; while(scanf("%d",&n)!=EOF) { if(n<3||n>7) continue; m=pow(10,n-1); pow_1(n); for(i=m;i<m*10;i++) { for(j=0;j<M;j++) c[j]=a[j]=0; flag=1; t=i; for(j=M-1;t!=0;j--){ a[j]=t%10; for(k=M-1;k>=M-n;k--) c[k]+=sum[a[j]][k]; t/=10; } d=0; for(k=M-1;k>=0;k--){ t=(c[k]+d)%10; d=(c[k]+d)/10; c[k]=t; if(a[k]!=c[k]){ flag=0; break; } } if(flag==1){ for(k=M-n;k<M;k++) printf("%d",a[k]); printf("\n"); } } } return 0; }
该算法的思想可以求出大位数的水仙花数!!!
相关文章推荐
- 华为上机测试题(水仙花数升级版-java)
- 什么是水仙花数
- CSDN 博客升级版2.0进步了
- [升级版]用JS判断输入的最大数(一个汉字为二个单位、一个英文字母为一个单位)
- 隔行换色升级版 ... 学无止境
- “水仙花数”是否如“质数”一样无界?并对“百度百科”存疑:水仙花数的上界是否卡得太紧了?
- “程序员资格考试”与水仙花数算法的核心代码
- 水仙花数
- 黑金开发板升级版完美面市!!!
- Nhibernate入门与demo 升级版
- 发送短信小程序升级版一
- javascript 弹出层组件(升级版)
- scp从多台机器上批量下载文件到本机(升级版)
- hdu_2010_水仙花数_又见水仙花数-.-!!
- 分享读取各大主流邮箱通讯录(联系人)、MSN好友列表的的功能【升级版(2.0)】
- 寻找水仙花数
- QQ电脑管家加速升级版便携版
- 打印任意位数的水仙花数
- Android学习笔记:ListView上拉加载下拉刷新升级版:滑动tab结合listView数据刷新
- java 线程间的通讯(升级版)