「已注销」 2022-10-26 18:25 采纳率: 100%
浏览 22
已结题

这个有答案,但是不明白步骤

img

这个有答案,但是看不懂不明白为什么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进行判定是否找到了“陷阱”数的依据

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 11月4日
  • 已采纳回答 10月27日
  • 创建了问题 10月26日

悬赏问题

  • ¥20 西门子S7-Graph,S7-300,梯形图
  • ¥50 用易语言http 访问不了网页
  • ¥50 safari浏览器fetch提交数据后数据丢失问题
  • ¥15 matlab不知道怎么改,求解答!!
  • ¥15 永磁直线电机的电流环pi调不出来
  • ¥15 用stata实现聚类的代码
  • ¥15 请问paddlehub能支持移动端开发吗?在Android studio上该如何部署?
  • ¥20 docker里部署springboot项目,访问不到扬声器
  • ¥15 netty整合springboot之后自动重连失效
  • ¥15 悬赏!微信开发者工具报错,求帮改