6174问题
来源:互联网 发布:剑网三捏脸正太数据 编辑:程序博客网 时间:2024/06/05 18:52
假设你有一个各位数字互不相同的四位数,把所有的数字从大到小排序后得到a,从小到大后得到b,然后用a-b替换原来这个数,并且继续操作。例如,从1234出发,依次可以得到4321-1234=3087、8730-378=8352、8532-2358=6174,又回到了它自己!现在要你写一个程序来判断一个四位数经过多少次这样的操作能出现循环,并且求出操作的次数
比如输入1234执行顺序是1234->3087->8352->6174->6174,输出是4
- 输入
- 第一行输入n,代表有n组测试数据。
接下来n行每行都写一个各位数字互不相同的四位数 - 输出
经过多少次上面描述的操作才能出现循环
我的解答:
#define _CRT_SECURE_NO_WARNINGS#include<stdio.h>#include<stdlib.h>int A[4] = { 0 };int cmp(const void *a, const void *b){return *(int *)a - *(int *)b;}void convert(int n){int i,count = 1;while (n != 6174){int temp = n;int sum1 = 0, sum2 = 0, j = 0;do{A[j++] = temp % 10;} while (temp /= 10);qsort(A, 4, sizeof(A[0]), cmp);for (j = 0, i = 3; j < 4, i >= 0; j++, i--){sum1 = sum1 * 10 + A[i];sum2 = sum2 * 10 + A[j];}n = sum1 - sum2;count++;}printf("%d\n", count);}int main(){int m, number;scanf("%d", &m);while (m--){scanf("\n%d", &number);convert(number);}return 0;}
0 0
- 6174问题
- 6174问题
- 6174问题
- 6174问题
- 6174问题
- 6174问题
- 6174问题
- 6174问题
- 6174问题
- 6174问题
- 6174问题
- 6174问题
- 6174问题
- 6174问题
- 6174问题
- 6174问题
- 6174问题
- 6174问题。
- Hdu1848 Fibonacci again and again(sg函数)
- HDU 4804 Campus Design(插头DP)
- NET程序员应该知道些什么
- Linux设备模型(总结)
- 24点纸牌游戏计算
- 6174问题
- hdu1058 Humble Numbers(dp打表)
- 疯狂单片机--用C++写STM32程序-STM32PIN
- python使用正则表达式
- Linux根文件系统的挂载过程分析
- JSP中include指令和include动作的区别
- 数据结构 并查集
- 单件模式(Singleton)
- 【技术】【转】字节序问题--大端法小端法