6174问题
来源:互联网 发布:spool导出数据 编辑:程序博客网 时间:2024/06/08 14:51
/*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行每行都写一个各位数字互不相同的四位数
输出
经过多少次上面描述的操作才能出现循环
样例输入
1
1234
样例输出
4
*/
#include<stdio.h>
int main()
{
int T;
scanf("%d",&T);
while(T--)
{
int a[4],i,j,t,m,x1,x2,num=1;
scanf("%d",&m);
while(m!=6174)
{
a[0]=m/1000%10;
a[1]=m/100%10;
a[2]=m/10%10;
a[3]=m%10;
for(i=0;i<3;i++)//冒泡法
{
for(j=0;j<3-i;j++)
{
if(a[j]<a[j+1])//从大到小排序,a[0]是最大的,a[3]是最小的
{
t=a[j];
a[j]=a[j+1];
a[j+1]=t;
}
}
}
x1=a[0]*1000+a[1]*100+a[2]*10+a[3];
x2=a[3]*1000+a[2]*100+a[1]*10+a[0];
m=x1-x2;
num++;
}
printf("%d\n",num);
}
return 0;
}
- 6174问题
- 6174问题
- 6174问题
- 6174问题
- 6174问题
- 6174问题
- 6174问题
- 6174问题
- 6174问题
- 6174问题
- 6174问题
- 6174问题
- 6174问题
- 6174问题
- 6174问题
- 6174问题
- 6174问题
- 6174问题。
- Java HttpConnection Post Json 请求接口修改密码,接收返回值
- CodeForces 372A Counting Kangaroos is Fun袋鼠口袋问题折半搜索
- 动画----补间动画
- [Cloud Computing]Mechanisms: Trusted Platform Module
- Web项目中用mybatis配置多个数据库
- 6174问题
- JAVA(五)Java选择与循环语句
- 【POJ】1328 - Radar Installation(贪心)
- lucene源码分析---8
- Emmet插件神奇用法
- 如何在命令行使用cov-run-desktop
- Nginx负载均衡的4种方案配置实例
- linux启动时间测试
- React-Native笔记