Hzu挑战自我


私信TA

用户名:gxhzxyjsj

访问量:98832

签 名:

2024终究会过去,期待2025!

等  级
排  名 8
经  验 27865
参赛次数 67
文章发表 157
年  龄 0
在职情况 教师
学  校 贺州学院
专  业 软件工程

  自我简介:

弱鸡一个,继续努力!

解题思路:

(1)输入一个整数,然后拆分成4个数字;

(2)排序,再重新组合成最大值和最小值,然后求他们之差;

(3)循环比较是否等于6174即可,注意有一个计数变量。


参考代码:

#include <bits/stdc++.h>
using namespace std;
int main()
{
	int n,k,a[4];
	k=0;
	cin>>n; 
	while(n!=6174)
	{			
		int m1,m2,i=0;
		while(n)
		{
			a[i++]=n%10;
			n/=10;
		}
		sort(a,a+4);
		m1=m2=0;
		for(int i=0;i<4;i++)
		{
			m1=m1*10+a[i];
			m2=m2*10+a[3-i];
		}
		n=m2-m1;
		k++;
	}	
	cout<<k<<endl;		
	return 0;
}


 

0.0分

0 人评分

  评论区

  • «
  • »