【C&C++】循环结构:黑洞陷阱

您所在的位置:网站首页 数字黑洞两位数 【C&C++】循环结构:黑洞陷阱

【C&C++】循环结构:黑洞陷阱

2024-06-27 21:02| 来源: 网络整理| 查看: 265

要求:

程序输入的一个小于1000且三个数字不全相等的整数,请你输出进入黑洞的重排求差过程。本问题又称“Kaprekar问题”。

495 是一个很神奇的数,被称为黑洞数或者陷阱数。

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

例如,对整数80,前位补0后得到080,重排后可以得到800,008。此时可以得到的最大数为800,最小数为008(即8)。那么只需要4次重排求差即可得到495,过程如下:

1:800-8=792 //第一次 2:972-279=693 //第二次,将第一次的结果进行重排求差 3:963-369=594 //第三次,将第二次的结果进行重排求差 4:954-459=495 //第四次以此类推 相关知识

要实现上述功能,需要反复做一些相同或相似的工作,也就是反复执行一些代码。这需要用到循环语句。

C 和 C++ 有3种基本的循环控制结构:while 语句、do-while 语句和 for 语句。

while 循环

while 循环语句表现为:

while ()

其中 while 是 C 和 C++ 的关键字, 是循环控制条件,后面的语句是循环体。

while 语句执行过程

首先计算的值,如果的值为0(即 false ),则跳过循环体,执行整个 while 语句的后继语句;

如果的值为非0(即 true ),则执行指定的,执行完该语句后,再计算的值,如果的值仍然为非0,则继续执行指定的,再进行测试 ……,直到的值为0,再跳过循环体,结束整个 while 语句的执行,接着执行整个 while 语句的后继语句。 执行流程图如下: 在这里插入图片描述 例如下面的程序可以计算飞机上下落的铁球落地的时间(精确到秒)。假设飞机高度为2500米,下落的高度d(米)和时间t(秒)之间的关系是d=(1/2)gt ^ 2 , 其中g = 9.82 m/s ^ 2。

// 初始状态时间为秒,下落高度为米 int sec = 0; float dis = 0; // 如果下落高度小于米,则继续循环 while (dis


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3