早教吧作业答案频道 -->其他-->
C++程序设计,数字黑洞6174给定任意的一个四位正整数(数字不全相同),将它的各位数字重新组合成一个最大的数和最小的数相减后得到一个新的数,对这个新的数重复组数、相减的过程,最多
题目详情
C++ 程序设计,数字黑洞6174
给定任意的一个四位正整数(数字不全相同),将它的各位数字重新组合成一个最大的数和最小的数相减后得到一个新的数,对这个新的数重复组数、相减的过程,最多七步,必得6174.即:7641-1467=6174 ,将永远出不来.输入格式:一个四位整数(不全相同) 输出格式:若干行(每行为一个相减运算等式) 输入样例 5060输出样例 6500-56=6444 6444-4446=1998 9981-1899=8082 8820-288=8532 8532-2358=6174编程参考:从 n 中分解出四个数字,排序,组合得最大数、最小数, 二数相减结果重赋给 n ,输出减式, 直到 n=6174 为止.
给定任意的一个四位正整数(数字不全相同),将它的各位数字重新组合成一个最大的数和最小的数相减后得到一个新的数,对这个新的数重复组数、相减的过程,最多七步,必得6174.即:7641-1467=6174 ,将永远出不来.输入格式:一个四位整数(不全相同) 输出格式:若干行(每行为一个相减运算等式) 输入样例 5060输出样例 6500-56=6444 6444-4446=1998 9981-1899=8082 8820-288=8532 8532-2358=6174编程参考:从 n 中分解出四个数字,排序,组合得最大数、最小数, 二数相减结果重赋给 n ,输出减式, 直到 n=6174 为止.
▼优质解答
答案和解析
#include
void sort(int a[],int left,int right)
{
int i,j,t;
i=left,j=right+1;
if(left while(1){
while(i+1 while(j-1>left-1&&a[--j]>a[left]);
if(i>=j)break;
t=a[i],a[i]=a[j],a[j]=t;
}
t=a[left],a[left]=a[j],a[j]=t;
sort(a,left,j-1);
sort(a,j+1,right);
}
}
int main()
{
int a,b[4],ma,mi,i;
scanf("%d",&a);
for(;;)
{
for(i=0;i<4;i++)b[i]=a%10,a/=10;
sort(b,0,3);
ma=b[3]*1000+b[2]*100+b[1]*10+b[0];
mi=b[3]+b[2]*10+b[1]*100+b[0]*1000;
a=ma-mi;
printf("%d-%d=%d\n",ma,mi,a);
if(a==6174)break;
}
return 0;
}
void sort(int a[],int left,int right)
{
int i,j,t;
i=left,j=right+1;
if(left
while(i+1
if(i>=j)break;
t=a[i],a[i]=a[j],a[j]=t;
}
t=a[left],a[left]=a[j],a[j]=t;
sort(a,left,j-1);
sort(a,j+1,right);
}
}
int main()
{
int a,b[4],ma,mi,i;
scanf("%d",&a);
for(;;)
{
for(i=0;i<4;i++)b[i]=a%10,a/=10;
sort(b,0,3);
ma=b[3]*1000+b[2]*100+b[1]*10+b[0];
mi=b[3]+b[2]*10+b[1]*100+b[0]*1000;
a=ma-mi;
printf("%d-%d=%d\n",ma,mi,a);
if(a==6174)break;
}
return 0;
}
看了C++程序设计,数字黑洞617...的网友还看了以下:
下列说法中正确的说法是(多选)A总产量减少,边际产量一定是负数B只要边际产量减少,总产量一定减少C 2020-05-13 …
y+3的绝对值减去10-y的绝对值=3,求y=?还有一题,2x-1的绝对值减去2x-7的绝对值=0 2020-06-03 …
a+c的绝对值减a+b+c的绝对值减b-a的绝对值加b+c的绝对值结果是多少过程怎么写 2020-06-08 …
将抛物线y等于2括号x减一括号的平方加三做下列移动,求得到的抛物线的解析式.以x轴为对称轴,将原抛 2020-07-10 …
求一次函数难题设a是整数,关于x的方程x减1的绝对值减2的绝对值等于a,只有三个不同的整数解,求着 2020-07-25 …
加减二元一次方程组用哪个加哪个减比如4X+10y=3.615X+10y=8它是两个式子都是加法的, 2020-08-03 …
已知两个圆:x2+y2=1①;x2+(y-3)2=1②,则由①式减去②式可得上述两个圆的对称轴方程. 2020-11-22 …
有序表归并算法实现RT,对任意输入的两个按值非递减有序的整数序列,写一程序将它们归并成一个按值非递减 2020-11-28 …
彤彤要将一张励志贺卡随礼物赠送给小伙伴.他将一张正方形卡纸的一组对边减少了5厘米,制作成一张长方贺卡 2020-12-02 …
半透膜允许离子和小分子自由通过,生物大分子不能通过。这过程未消耗能量,但熵减少了?过程中将生物大分子 2020-12-03 …