6174
来源:互联网 发布:js input自动换行 编辑:程序博客网 时间:2024/06/16 22:27
任意给一个四位数(各位数不完全相同),四个数组成一个最大数和一个最小数,他们的差又能组成一个最大数和一个最小数,--------直到某一步得到的差将会出现循环重复。写一个程序统计所有满足以上条件的四位数。(黑洞数,经过不到7步,都可以到达6174)
例如:3100 ― 0013 = 3087
8730 ― 0378 = 8352
8532 ― 2358 = 6174
7641 ― 1467 = 6174
#include "stdio.h"int judge(int i,int j,int p,int q){int a[4];int flag=0;int result[10000];int count=0;a[0]=i; a[1]=j; a[2]=p; a[3]=q;while(!flag){//sortingfor(int m=0;m<4;m++){for(int n=m+1;n<4;n++){if(a[m]>a[n]){int temp=a[m];a[m]=a[n];a[n]=temp;}}}int max_number=a[3]*1000+a[2]*100+a[1]*10+a[0];int min_number=a[0]*1000+a[1]*100+a[2]*10+a[3];int newNumber=max_number-min_number;for(int k=0;k<count;k++){if(a[k]==newNumber){flag=1;return flag;}}if(flag==0){result[count]=newNumber;count++;a[0]=newNumber/1000;a[1]=(newNumber/100)%10;a[2]=(newNumber/10)%10;a[3]=newNumber%10;}}return flag;}void main(){int number=0;int i,j,p,q;for(i=0;i<10;i++){for(j=0;j<10;j++){for(p=0;p<10;p++){for(q=0;q<10;q++){if (i==j && j==p && p==q)continue;else{if (judge(i,j,p,q)==1){number++;printf("%d%d%d%d ",i,j,p,q);}}}}}}printf("the total number is %d",number);}
0 0
- 6174
- 6174
- 6174
- 6174
- 6174
- 6174问题
- 6174问题
- 6174问题
- 6174问题
- 6174问题
- 6174问题
- 6174问题
- 6174问题
- 6174问题
- 6174问题
- 6174问题
- 6174问题
- 6174问题
- Eclipse开发环境搭建
- Linux:分区指南
- 在游标中使用FOR UPDATE 和 WHERE CURRENT
- MTK Android Driver:GPIO
- HDU 5090 Game with Pearls(上海邀请赛水题)
- 6174
- redhat enterprise 6.4 chenge centos yum
- MySql的表分区
- javascript 数组排序sort()用法
- 直角三角形的边
- java简单实现一个小型的打字测试软件
- web系统超时操作锁定写法
- 发现精美
- Heritrix提高抓取效率的若干尝试