0
已解决
李泽屿
新手启示者
新手启示者
题目链接: 酷町堂:5065
#include<bits/stdc++.h>
using namespace std;
int n,maxa,mina,cnt,a[10];//n是一个四位数,maxa用来存最大值,mina用来存最小值,cnt:计数器
int y=1;
bool cmp(int a,int b){
return a>b;
}
int main(){
cin>>n;
while(n!=6174){
while(n!=0){
a[y]=n%10;
n/=10;
y++;
}
sort(a+1,a+4+1,cmp);
for(int i=1;i<=4;i++){
if(i==1) maxa+=a[i]*1000;
if(i==2) maxa+=a[i]*100;
if(i==3) maxa+=a[i]*10;
if(i==4) maxa+=a[i];
}
sort(a+1,a+4+1);
for(int i=1;i<=4;i++){
if(i==1) mina+=a[i]*1000;
if(i==2) mina+=a[i]*100;
if(i==3) mina+=a[i]*10;
if(i==4) mina+=a[i];
}
n=maxa-mina;
maxa=0;
mina=0;
cnt++;
}
cout<<cnt;
return 0;
}
0
已采纳
郭梓强
初级光能
初级光能
@李泽屿 我来帮帮你吧
我的思路:
函数(judge)
a数组取四位数的每一位
tmp=每位数组成的最大值-最小值(这个你应该会求,就是a[4]*1000+a[3]*100+a[2]*10+a[1]-a[1]*1000-a[2]*100-a[3]*10-a[4])
主函数(main)
while循环n!=6174
judge()
cnt++;
最后输出cnt即可
望采纳!!!!
0
0
0
0