这个有答案,但是看不懂不明白为什么i<1000,和if语句里面的条件是为什么那样子写,看不懂每个步骤
2条回答 默认 最新
- leaf_cq 2022-10-27 10:11关注
1、程序员一定要会控制缩进,不然不管是自己还是他人看起来都很恼火……
2、通过的for循环一般是这样:for( int i = 1; i < 1000; i++ ),而你的代码中没有最后的 i++,属于一种特殊用法,程序员必须在for循环内部对i的值进行控制及处理,否则极有可能是一个死循环。在本例中,i 除了控制循环总次数外,还是查找“陷阱”数过程的步骤数输出
3、第10行判定是否找出了“陷阱”数,找到则退出循环。这个在第二次循环开始才考虑,第一次循环基本不会处理,除非你的number输入了0……
4、第14-16行则是将第一次输入的number或者完成一次找“陷阱”数运算完成之后的新number赋值给same,以便于在下一次循环时在第10行进行新旧数据的比对
5、第18行开始正式进入业务处理,该行将初始数加上它的个位数字(首次循环,之后循环是加十位、百位……)
6、第19行将number缩小十位,即将最右边一位丢弃,配合上面一行提取靠右一位数字
7、第20行判定是否所有number的各位数字都已加完,未加完就直接返回for循环进入下一轮数字提取相加,加完了就进入22行开始的处理
8、第22行将number与其各位数字之和的结果sum乘以3再加1(左边说明中的步骤)然后再赋值给number(得到一个新的数),这个数就是在下一轮for循环的开始就跟same进行判定是否找到了“陷阱”数的依据本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥15 如何让企业微信机器人实现消息汇总整合
- ¥50 关于#ui#的问题:做yolov8的ui界面出现的问题
- ¥15 如何用Python爬取各高校教师公开的教育和工作经历
- ¥15 TLE9879QXA40 电机驱动
- ¥20 对于工程问题的非线性数学模型进行线性化
- ¥15 Mirare PLUS 进行密钥认证?(详解)
- ¥15 物体双站RCS和其组成阵列后的双站RCS关系验证
- ¥20 想用ollama做一个自己的AI数据库
- ¥15 关于qualoth编辑及缝合服装领子的问题解决方案探寻
- ¥15 请问怎么才能复现这样的图呀