任何一个数字不全相同的三位数,经有限次“重排求差”操作,总会得到495。最后所得的495即为三位黑洞数。所谓“重排求差”操作即组成该数的数字重排后的最大数减去重排后的最小数。求编程
#include <stdio.h>
int main(void)
{
int g,s,b,n,d,x,z;
printf("Input an integer:");
scanf("%d",&n);
if(a=b=c)
printf("0");
else
while(n!=495)
{
g=n%10;
s=(n/10)%10;
b=n/100;
}
printf("%f\n",s);
return 0;
}
我编了一半编不下去了,,求帮助。。。
C语言,任何一个数字不全相同的三位数,经有限次“重排求差”操作,总得到495。所得的495即为三位黑洞数
答案:3 悬赏:10 手机版
解决时间 2021-03-01 19:53
- 提问者网友:我的未来我做主
- 2021-03-01 03:31
最佳答案
- 五星知识达人网友:拾荒鲤
- 2021-03-01 05:08
#include <stdio.h>
//#include "stdlib.h"
int main(void)
{
int d[4],n;
int i,j,t,max,min,k,num;
printf("Input an integer:");
scanf("%d",&n);
num=0;
do
{
d[2]=n%10;
d[1]=(n/10)%10;
d[0]=(n/100);
if(d[0]==d[1] && d[1]==d[2])
{
printf("Input ERROR !");
return 0;
}
//按位降序,并求出最大数和最小数
max=0;
min=0;
k=1;
for(i=0;i<=2;i++)
{
for(j=2;j>i;j--)
{
if(d[j]>d[j-1])
{
t=d[j];d[j]=d[j-1];d[j-1]=t;
}
}
max=max*10+d[i];
min=min+d[i]*k;
k=k*10;
}
n=max-min;
printf("%d-%d=%d\n",max,min,n);
//system("pause");
num+=1;
}while(n!=495);
printf("number:%d",num);
return 0;
}
全部回答
- 1楼网友:一叶十三刺
- 2021-03-01 07:07
先提取三位数的个、十、百位,判断个、十、百位不相等。进行排序比较,找出最大,最小数。再次组合成三位数,判断组合的三位数是不是495.大概思路就是这样了
再看看别人怎么说的。
- 2楼网友:时间的尘埃
- 2021-03-01 06:38
这个用数组来做,给你提供一个思路吧:
int a[5],b[5]; //分别来存重排后的最大 最小数的 个 十 百 位。
int max,min。 //把a,b数组里的存的3个数转化为3位数max ,min。
判断max-min是否为495,不是的话再重新操作。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯