#P0016. 3N+1 问题

3N+1 问题

1. 问题描述

数学中一个很著名的问题:

一个大于 1 的整数 num,一直按照以下规则计算

  • 如果 num 是奇数,num = 3 * num + 1
  • 如果 num 是偶数,num = num // 2

重复以上规则,多次计算之后,一定会得到 1,打印出整个计算过程

例如:num = 30

输出:30 -> 15 -> 46 -> 23 -> 70 -> 35 -> 106 -> 53 -> 160 -> 80 -> 40 -> 20 -> 10 -> 5 -> 16 -> 8 -> 4 -> 2 -> 1

2. 输入和输出

输入方式:

  • 一个正整数
  • 使用 input() 读入, 注意读入之后是一个字符串

输出方式:

  • 一个字符串代表计算过程,注意箭头和数字中间有一个空格分隔
  • 使用 print() 输出

输入输出示例

# 输入: 
1
# 输出: 
1
# 输入: 
3
# 输出: 
3 -> 10 -> 5 -> 16 -> 8 -> 4 -> 2 -> 1