7-28 黑洞数 (20分)
程序员文章站
2022-03-13 13:37:11
...
输入样例:
123
输出样例:
1: 321 - 123 = 198
2: 981 - 189 = 792
3: 972 - 279 = 693
4: 963 - 369 = 594
5: 954 - 459 = 495
代码
#include<iostream>
#include<algorithm>
using namespace std;
int main(){
int n;cin>>n;
int a[3],Max,Min;
for(int i=1;;i++){
a[0]=n/100;a[1]=n/10%10;a[2]=n%10;
sort(a,a+3);
Max=a[2]*100+a[1]*10+a[0];
Min=a[0]*100+a[1]*10+a[2];
n=Max-Min;
printf("%d: %d - %d = %d\n",i,Max,Min,n);
if(n==495) break;
}
return 0;
}
#include<iostream>
#include<algorithm>
#include<cmath>
using namespace std;
int n,cnt;
void f(int x){
if(x<100){
x=x*10;
}
int sum1=0,sum2=0;
int arr[1010]={0};
int i=0;
//把数拆分存到数组中
while(x!=0){
arr[i++]=x%10;
x=x/10;
}
//排序
sort(arr,arr+i);
//求最大和最小
for(int j=0;j<i;j++){
sum1+=arr[j]*pow(10,j);
}
for(int j=0;j<i;j++){
sum2+=arr[j]*pow(10,i-j-1);
}
//输出
printf("%d - %d = %d\n",sum1,sum2,sum1-sum2);
//求n
n=sum1-sum2;
}
int main(){
cin>>n;
while(1){
printf("%d: ",++cnt);
f(n);
if(n==495){
break;
}
}
return 0;
}