nyoj57____6174问题
来源:互联网 发布:安能快递对接淘宝 编辑:程序博客网 时间:2024/06/08 11:15
6174问题
时间限制:1000 ms | 内存限制:65535 KB
难度:2
- 描述
假设你有一个各位数字互不相同的四位数,把所有的数字从大到小排序后得到a,从小到大后得到b,然后用a-b替换原来这个数,并且继续操作。例如,从1234出发,依次可以得到4321-1234=3087、8730-378=8352、8532-2358=6174,又回到了它自己!现在要你写一个程序来判断一个四位数经过多少次这样的操作能出现循环,并且求出操作的次数
比如输入1234执行顺序是1234->3087->8352->6174->6174,输出是4
- 输入
- 第一行输入n,代表有n组测试数据。
接下来n行每行都写一个各位数字互不相同的四位数 - 输出
- 经过多少次上面描述的操作才能出现循环
- 样例输入
11234
- 样例输出
4
- 来源
- [张洁烽]原创
- 上传者
张洁烽
#include<stdio.h>
02.
#include<stdlib.h>
03.
int
main()
04.
{
05.
int
n,y;
06.
scanf
(
"%d"
,&n);
07.
while
(n--)
08.
09.
{ y=1;
10.
11.
int
a,b,c,d,t,num1,num2,k;
12.
scanf
(
"%d"
,&k);
13.
while
(k!=6174)
14.
15.
{
16.
a=k/1000;
17.
b=k/100%10;
18.
c=k/10%10;
19.
d=k%10;
20.
if
(a<b){t=a;a=b;b=t;}
21.
if
(a<c){t=a;a=c;c=t;}
22.
if
(a<d){t=a;a=d;d=t;}
23.
if
(b<c){t=b;b=c;c=t;}
24.
if
(b<d){t=b;b=d;d=t;}
25.
if
(c<d){t=c;c=d;d=t;}
26.
num1=a*1000+b*100+c*10+d;
27.
num2=d*1000+c*100+b*10+a;
28.
k=num1-num2;
29.
y++;
30.
}
31.
printf
(
"%d\n"
,y);
32.
}
33.
return
0;
34.
}
- nyoj57____6174问题
- 问题
- 问题
- 问题
- 问题
- 问题
- 问题
- 问题
- 问题
- 问题
- 问题
- 问题
- 问题
- 问题
- 问题
- 问题
- 问题???
- 问题
- 70. 阅读代码
- 很有趣的两道逻辑推理题哦
- clone方式添加应用节点
- nyoj34
- Python(4)-----The function operation of python
- nyoj57____6174问题
- Android adb root权限
- nyoj75日期计算
- ok6410 移植linux-3.11.2出现如下问题????
- 智能自然语言交流系统项目总结
- android 交叉编译工具的设置
- const总结
- uestc1732欢乐到端午&&poj1664(递推)
- Linux目录结构