6174 问题
来源:互联网 发布:斗鱼王师傅c语言视频 编辑:程序博客网 时间:2024/06/06 03:23
问题:假设有一个各位数字互不相同的四位数,把所有的数字从大到小排序后得到a,从小到大排序后得到b,然后用 a-b 替换原来这个数,并且继续操作。
例如:1234出发,依次得到
4321-1234=3087;
8730-378 = 8352;
8532- 2358 = 6174;
7641-1467 = 6174;
要求:最多循环1000次
样例输入:1234
样例输出:1234->3087->8352->6174-6174;
附上我的代码,学的渣,写的程序也比较龊!!!!
#include <stdio.h>int* sort(int f[],int len) //大到小的排序 {int c =0;for(int i=0; i<len;++i){for(int j=i+1;j<len;++j){if(f[i] <f[j]){c = f[i];f[i] = f[j];f[j] = c;}}}return f;}int convert(int f[],int k){int *p = NULL;int m=0;f[0] = k/1000; //把这个数放入数组 f[1] = k%1000/100;f[2] = k%100/10;f[3] = k%10;p = sort(f,4);m=(*p*1000+*(p+1)*100+*(p+2)*10+*(p+3))- ( *(p+3)*1000+*(p+2)*100+*(p+1)*10+*p);return m;}int main(){int f[4] = {0};int *p = NULL;int n = 0;int k = 0;int count = 0;printf("请输入一个互不相同的四位数:");scanf("%d",&n);printf("%d->",n);k = n;while(k!=6174 && count<=1000){k = convert(f,k);printf("%d->",k);++count;}if(6174==k)printf("%d",6174);return 0;}
0 0
- 6174问题
- 6174问题
- 6174问题
- 6174问题
- 6174问题
- 6174问题
- 6174问题
- 6174问题
- 6174问题
- 6174问题
- 6174问题
- 6174问题
- 6174问题
- 6174问题
- 6174问题
- 6174问题
- 6174问题
- 6174问题。
- 到底什么时候该用多线程
- 操作系统实验三之进程调度算法
- 笔记
- 二进制的匹配问题
- Create Regular Expression Objects (创建正则表达式对象)
- 6174 问题
- hdu 1083 匈牙利算法
- SONObject jsonObject=JSONObject.fromObject(map) 执行到这的时候没有任何反应,并且不报错
- 项目2 职员也有工资了
- nandflash的地址周期
- Wifi+亚马逊购物工具,疑问云云
- 在C++类中定义线程函数的方法
- 匈牙利算法详解
- 张艺谋《归来》 陈道明助阵