6147问题
来源:互联网 发布:excel数据监控软件 编辑:程序博客网 时间:2024/05/29 17:24
假设你有一个各位数字互不相同的四位数,把所有的数字从大到小排序后得到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>
int main(){
int t,n;
scanf("%d",&t);
while(t--)
{
int a,b,c,d,s,x=1,m;
scanf("%d",&n);
while(1)
{
a=n%10;
b=n/10%10;
c=n/100%10;
d=n/1000;
if(a<b)
{
s=a;a=b;b=s;
}
if(a<c)
{
s=a;a=c;c=s;
}
if(a<d)
{
s=a;a=d;d=s;
}
if(b<c)
{
s=b;b=c;c=s;
}
if(b<d)
{
s=b;b=d;d=s;
}
if(c<d)
{
s=c;c=d;d=s;
}
m=(a*1000+b*100+c*10+d)-(d*1000+c*100+b*10+a);
if(n==m)
{
printf("%d\n",x);
break;
}
else
{
n=m;
x++;
}
}
}
return 0;
}
阅读全文
0 0
- 6147问题
- 6147问题
- nyoj57 6147问题
- 问题
- 问题
- 问题
- 问题
- 问题
- 问题
- 问题
- 问题
- 问题
- 问题
- 问题
- 问题
- 问题
- 问题
- 问题
- Android-贪吃蛇(三)- Mainactivity
- 剑指offer题解C++【12】数值的整数次幂
- Java读取Unicode文件(UTF-8等)时碰到的BOM首字符问题,及处理方法
- react-native time定时器 防止内存泄露的注意点
- java的CSV读写
- 6147问题
- 插入USB设备,无法在windows下ubuntu中找到设备节点的问题解决
- android 效果网址
- 代码适用性-低耦合案例
- 写hql时,路径中有"\"时,要将它换成"\\",才能在数据库中显示"\"
- 使用create-react-app自动构建react项目
- Intellig IDEA使用log4j打印log
- Android-贪吃蛇(四)- 布局文件
- git add时出错,记录一下解决方法