57.6174问题

描述

假设你有一个各位数字互不相同的四位数,把所有的数字从大到小排序后得到a,从小到大后得到b,然后用a-b替换原来这个 数,并且继续操作。例如,从1234出发,依次可以得到4321-1234=3087、8730-378=8352、8532-2358=6174,又回 到了它自己!现在要你写一个程序来判断一个四位数经过多少次这样的操作能出现循环,并且求出操作的次数

比如输入1234执行顺序是1234->3087->8352->6174->6174,输出是4

输入
第一行输入n,代表有n组测试数据。
接下来n行每行都写一个各位数字互不相同的四位数
输出
经过多少次上面描述的操作才能出现循环
样例输入
1
1234
样例输出
4

 1 #include<stdio.h>
 2 int main( ) {
 3     int n, m, i, j, t, a[4], max, min, count;
 4     scanf("%d", &n);
 5     while(n--) {
 6         count = 1;
 7         scanf("%d",&m);
 8         while(m != 6174) {
 9             for(i = 0; i < 4; i ++) {
10                 a[i] = m % 10;
11                 m = m / 10;
12             }
13             for(i = 0; i < 4; i ++)
14                 for(j = i + 1; j < 4; j ++)
15                     if(a[i] < a[j]) {
16                         t = a[i];
17                         a[i] = a[j];
18                         a[j] = t;
19                     }
20                     max = a[0] * 1000 + a[1] * 100 + a[2] * 10 + a[3];
21                     min = a[3] * 1000 + a[2] * 100 + a[1] * 10 + a[0];
22                     m = max - min;
23                     count ++;
24         }
25         printf("%d\n", count);
26     }
27     return 0;
28 }

时间: 2024-07-30 20:26:45

57.6174问题的相关文章

NYOJ题目57 6174问题

----------------------------------------------------- 感觉这个OJ题目难度划分很不合理,这道理明明很简单却给了2的难度,而之前难度为0的水题有好多难死个人没做出来让我暗暗觉得自己脑子里都是屎... 把题目描述翻译成人话的意思就是多少次以后这个序列会出现,想明白这一点就比较简单了. AC代码: 1 import java.util.Arrays; 2 import java.util.Scanner; 3 4 public class Main

NYOJ 57 6174问题

啊哈!初次知道6174,还是在高中时,一本科普书上讲的.作为回忆,就把这道题AC了. 水题,不过去掉下面的注释,可以很直观的看到过程. 最后!!!为什么我用memset函数总是忘写#include<cstring>头文件!!! 时间限制:1000 ms  |  内存限制:65535 KB 难度:2 描述 假设你有一个各位数字互不相同的四位数,把所有的数字从大到小排序后得到a,从小到大后得到b,然后用a-b替换原来这个数,并且继续操作.例如,从1234出发,依次可以得到4321-1234=308

数字黑洞 - 6174

1 package com.niit.niitdigitalblackhole6174.main; 2 3 /** 4 * 验证数学黑洞 用户输入一个四位数,输入变换到6174的过程 5 * 例如:1234 6 * 4321 - 1234 = 3087 7 * 8730 - 0378 = 8352 8 * 8532 - 2358 = 6174 9 * @author Fatoland 10 */ 11 public class DigitalBlackHole6174 { 12 13 14 pu

5.3.1 6174问题

假设你有一个各位数字互不相同的四位数,把所有数字从大到小排序后得到a,从小到大排序后得到b,然后用a-b替换原来这个数,并且继续操作.例如,从1234出发,依次可以得到4321-1234=3087.8730-378=8352.8532-2358=6174.7641-1467=6174.有趣的是,最后回到了自己.要求:输入一个n位数,输出操纵序列,直到出现循环(即新得到的数曾经得到过).输入保证在循环之前最多只会产生1000个整数.样例输入:1234样例输出:1234 -> 3087 -> 83

DT大数据 梦工厂57讲

今日[DT大数据梦工厂视频]<第57讲:Scala中Dependency Injection实战详解> 土豆:http://www.tudou.com/programs/view/5LnLNDBKvi8/ 百度网盘:http://pan.baidu.com/s/1c0no8yk (DT大数据梦工厂scala的所有视频.PPT和代码在百度云盘的链接地址:http://pan.baidu.com/share/home?uk=4013289088#category/type=0&qq-pf-

平实给力的写作指导入门手册——leo鉴书57

写作是个体力活儿,需要不断的练习和砥砺.既然是体力劳动,那必然有套路,前人总结.后人学习并加以积累沉积,日久则形成不同的风格和流派有点儿像.同样,写作也有自己的套路和学习路径.初涉写作有必备之书吗?当然有,那就是<<华尔街日报>是如何讲故事的>这本. 我妈是语文老师,从小写作.语文对我就是种折磨.06年我改变主意开始写作时先是写博文,当时被朋友总结的写作风格是"简单粗暴 毫不矫情",意思是全以自己为中心,写得又硬又没人味儿,自然愿意读的人不多(相当部分是被我拉来

java.lang.UnsatisfiedLinkError: D:\apache-tomcat-7.0.57\bin\tcnative-1.dll: Can&#39;t load IA 32-bit .dll on a AMD 64-bit platform 错误

为了开发JavaWEB,安装了MyEclipse,在运行tomcat的时候发现报错:java.lang.UnsatisfiedLinkError: D:\apache-tomcat-7.0.57\bin\tcnative-1.dll: Can't load IA 32-bit .dll on a AMD 64-bit platform.自己上网查了下,发现这个错误对于项目的运行时没有什么大碍的,可能自己有强迫症,总是想没错,就上网找了解决方法.我先麻烦,就选择了最简单的方法,去tomcat目录下

6174

6174问题 时间限制: 1000 ms  |  内存限制: 65535 KB 难度: 2 描述 假 设你有一个各位数字互不相同的四位数,把所有的数字从大到小排序后得到a,从小到大后得到b,然后用a-b替换原来这个数,并且继续操作.例如,从 1234出发,依次可以得到4321-1234=3087.8730-378=8352.8532-2358=6174,又回到了它自己!现在要你写一个 程序来判断一个四位数经过多少次这样的操作能出现循环,并且求出操作的次数 比如输入1234执行顺序是1234->3

通过VLC的ActiveX进行二次开发,实现一个多媒体播放器 2011-04-10 00:57:23

http://blog.chinaunix.net/xmlrpc.php?r=blog/article&uid=25498312&id=218294 通过VLC的ActiveX进行二次开发,实现一个多媒体播放器 2011-04-10 00:57:23 分类: 系统运维 首先要注册VLC的ActiveX控件. 拷贝vlc-0.8.6e\activex目录下面的axvlc.dll文件到c:\windows目录下面,然后运行命令提示符cmd.在命令提示符中输入如下命令注册该控件 REGSVR32