用c语言实现黑洞陷阱

495是黑洞数:

题目为

给定任何一个小于1000的正整数,经前位补00后可以得到一个三位数(两位数前面补11个00,一位数前面补22个00)。如果这个三位数的三个数字不全相等,那么经有限次“重排求差”操作(组成该数的数字重排后的最大数减去重排后的最小数),总会得到495。

这里通过while循环和选择结构的得到黑洞数:495

分析题目意

输入一个数number后先判断是一位就先乘以100或乘以10后再定义one,ten,hundred;

分别将number的个,十,百。再用三个if找出最大值给hundred,第二大给ten,第三大one,

先定义max=hundred*100+ten*10+one,min=one*100+ten*10+hundred下一次number=max-min;

这个思路一般。

看以下编程为:

#include<stdio.h>
void main()
{int number;
int max,min;
int i=0;
int one,ten,hundred;
scanf("%d",&number);
if(number>0&&number<1000) 
while(number!=495) 
{
	if(number/10==0)
	number*=100;
	else if(number/100==0)
	number*=10;
	one=number%10;
	ten=number/10%10;
	hundred=number/100;
	if(one>hundred)
	{one+=hundred;
	hundred=one-hundred;
	one-=hundred;
	 } 
	if(ten>hundred)
	{ten+=hundred;
	hundred=ten-hundred;
	ten-=hundred;
	}
	if(one>ten)
	{one+=ten;
	ten=one-ten;
	one-=ten;
	}
	max=hundred*100+ten*10+one;
	min=one*100+ten*10+hundred;
	number=max-min;
	printf("%d:%d-%d=%d\n",++i,max,min,number);
	}	

	else printf("你输入不在范围中"); 
 } 

运行结果为                                                                                                                                 

以上编程有不足,请指教一下,用发财双手给我点点赞赞对努力编程最大支持啊!谢谢大家观看!

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

上 岸

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值