小白教程

 找回密码
 立即注册
查看: 5950|回复: 2

[已解决]求解答python,为啥输出的时候会多出4来

[复制链接]

1

主题

2

帖子

4

积分

新手上路

Rank: 1

积分
4
发表于 2021-5-11 16:16:02 | 显示全部楼层 |阅读模式
  1. def collatz(number):
  2.     if number%2==0:
  3.         
  4.         return number//2
  5.     else:      
  6.         return 3*number+1
  7.    
  8. try:
  9.     input_number = int(input("请输入一个整数:"))
  10.     while True:
  11.         input_number=collatz(input_number)
  12.         print(collatz(input_number))
  13.         if input_number==1:
  14.             break
  15. except:
  16.         print('出现错误!只支持输入整数!')
复制代码
请输入一个整数:8
2
1
4
最佳答案
2021-5-20 12:26:20
如果只想打印出2和1,只需要把跳出判断往前移
  1. input_number=collatz(input_number)
  2.     if input_number==1:
  3.         break
  4.     print(collatz(input_number))
复制代码
回复

使用道具 举报

2

主题

6

帖子

14

积分

新手上路

Rank: 1

积分
14
发表于 2021-5-13 04:51:13 | 显示全部楼层
第一轮下来 input_number由8变成了4,打印2;第二轮下来input_number由4变成了2,打印1;第三轮下来input_number由2变成了1,打印4,
然后跳出循环。
回复

使用道具 举报

1

主题

3

帖子

7

积分

新手上路

Rank: 1

积分
7
发表于 2021-5-20 12:26:20 | 显示全部楼层 &
如果只想打印出2和1,只需要把跳出判断往前移
  1. input_number=collatz(input_number)
  2.     if input_number==1:
  3.         break
  4.     print(collatz(input_number))
复制代码
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|小白教程 ( 粤ICP备20019910号 )

GMT+8, 2024-11-24 16:32 , Processed in 0.022101 second(s), 26 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc. Template By 【未来科技】【 www.wekei.cn 】

快速回复 返回顶部 返回列表