不完全相同的四位整数列如3425,经过如下变换都可以变成6174,
请编写程序完成如下过程
样例输入:
3425
样例输出:
5432-2345=3087
8730-0378=8352
8532-2358=6174
#include <iostream>
#include <cstdio>#include <algorithm>
using namespace std;
void to_chararray(int n,int arr[]) //整数转换成整数数组
{
for(int i=0;i<4;i++)
{
arr[i]=n%10;
n/=10;
}
}
int to_number(int arr[]){ //整数数组转换成整数
int sum=0;
for(int i=0;i<4;i++)
{
sum=sum*10+arr[i];
}
return sum;
}
bool cmp(int a,int b) //cmp函数
{
return a>b;
}
int main() {
int n,arr[4],a,b;
scanf("%d",&n);
while(1)
{
to_chararray(n,arr);sort(arr,arr+4,cmp);
a=to_number(arr);
sort(arr,arr+4);
b=to_number(arr);
printf("%04d-%04d=%04d\n",a,b,a-b);
n=a-b;
if(a-b==6174||a-b==0)
{
break;
}
}
return 0;
}