|
|
发表于 2022-9-18 16:20:48
|
显示全部楼层
本楼为最佳答案
本帖最后由 ZhKQYu 于 2022-9-18 17:30 编辑
对于问题二,python对于除法操作,不论是否可以整除,其结果都为浮点型,而地板除的意思是让除法之后的结果为整数,还有就是print里面的"n/2"就是去打印这三个字符,而不是真正做了除法
对于问题三,在问题二里的n // 2虽然做了除法,但是n却没有被更新,也就是说,n还是原来的n,并没有被重新赋值,因此才需要再去运行一次n = n // 2
对于问题四,当然是n为奇数才会执行,因为上面的if条件是偶数执行if里的语句,如果不是偶数就执行else里面的语句,而且"*3+1=",这个东西仅仅是一个字符串,并不是表达式
对于问题五,和问题3一样,不再赘述
对于问题六,因为你输入的n肯定是大于零的,在经过了一系列操作之后,一定还是大于零的,唯一的出口就是n==1,当然会一直执行,知道n在某一次操作之后更新为1
- n = int(input("请输入一个正整数 : "))
- while n != 1 and n > 0:
- print(n, "/ 2 =", n := n // 2, sep=" ") if n % 2 == 0 else print(n, "* 3 + 1 = ", n := n*3+1, sep=" ")
复制代码 |
|