1001 害死人不偿命的(3n+1)猜想 (15 分)

385 阅读1分钟

题目链接
题目很简单验证给定的数需要经过几步才能到达1。

  1. 假设这个数n
  2. 如果n是偶数,n = n/2;
  3. 如果n是奇数,n=(3*n+1)/2

c++代码

#include <iostream>
using namespace std;
int main() {
	int count = 0;
	int n;
	cin >> n;
	while (n != 1) {
		//是偶数
		if (n % 2 == 0) {
			n = n / 2;
		}
		else {
			n = (3 * n + 1) / 2;
		}
		count++;
	}
	cout << count << endl;
	return 0;
}

python3代码

n = input()
n = int(n)
count =0
while n !=1:
    if(n%2==0):
        n=n/2
    else:
        n=(3*n+1)/2
    count=count+1

print(count)

第一次用python刷题,python是真滴慢