6174问题
来源:互联网 发布:淘宝代销怎么关联发货 编辑:程序博客网 时间:2024/06/06 00:18
6174问题 (注意:4个位数的值 要 求正确)
时间限制: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>
#include<algorithm>
using namespace std;
int main()
{
int k;
scanf("%d",&k);
while(k--)
{
int n,m,x=1;
int a[10];
scanf("%d",&n);
while(1)
{
a[0]=n/1000;
a[1]=n/100%10; //分别求个,十,百,千的值;
a[2]=n/10%10;
a[3]=n%10;
sort(a,a+4);
m=(a[3]*1000+a[2]*100+a[1]*10+a[0])-(a[0]*1000+a[1]*100+a[2]*10+a[3]);
if(n==m)
{
printf("%d\n",x);
break;
}
#include<algorithm>
using namespace std;
int main()
{
int k;
scanf("%d",&k);
while(k--)
{
int n,m,x=1;
int a[10];
scanf("%d",&n);
while(1)
{
a[0]=n/1000;
a[1]=n/100%10; //分别求个,十,百,千的值;
a[2]=n/10%10;
a[3]=n%10;
sort(a,a+4);
m=(a[3]*1000+a[2]*100+a[1]*10+a[0])-(a[0]*1000+a[1]*100+a[2]*10+a[3]);
if(n==m)
{
printf("%d\n",x);
break;
}
else
{
n=m;
x++;
}
{
n=m;
x++;
}
}
}
return 0;
}
}
return 0;
}
阅读全文
0 0
- 6174问题
- 6174问题
- 6174问题
- 6174问题
- 6174问题
- 6174问题
- 6174问题
- 6174问题
- 6174问题
- 6174问题
- 6174问题
- 6174问题
- 6174问题
- 6174问题
- 6174问题
- 6174问题
- 6174问题
- 6174问题。
- 入门训练 Fibonacci数列
- PHP基本语法
- Oracle基础知识1 : 单表查询1
- Python-快速实现微信公众号自动回复(聊天机器人)
- C#通过SSH获取Linux下面文件夹中的所有文件
- 6174问题
- SpringBoot自我整理学习2(springboot集成Druid)
- 1065. 单身狗(25)
- Git的使用--如何将本地项目上传到Github
- 来到CSDN博客
- 1144 面向对象程序设计上机练习五(类和对象)
- 随机发牌程序
- Spring找不到 “beans”的声明
- 设置myEclipse的新建new下的选项卡