欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

7-28 黑洞数 (20分)

程序员文章站 2022-03-13 13:37:11
...

7-28 黑洞数 (20分)

输入样例:

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;
} 
相关标签: PTA_L1.5