解题思路:
(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 人评分