问题:对与任意一个大于1的自然数n,若n为奇数,n会变为3n+1,否则变为n的一半,经过m次变化,最后n肯定为1。输入n,求m的值(n<10^9)
思考:可以利用循环加if 语句实现,即:
但如果输入987654321,错误:
为啥,注意可能在3*n+1时整数溢出了,修改:
结果:
我认为其时可以直接定义为long long,结果一样:
如果有错误,请指明,感谢
问题:对与任意一个大于1的自然数n,若n为奇数,n会变为3n+1,否则变为n的一半,经过m次变化,最后n肯定为1。输入n,求m的值(n<10^9)
思考:可以利用循环加if 语句实现,即:
但如果输入987654321,错误:
为啥,注意可能在3*n+1时整数溢出了,修改:
结果:
我认为其时可以直接定义为long long,结果一样:
如果有错误,请指明,感谢