1001 害死人不偿命的(3n+1)猜想 (15分)
该题应该是pat考试第一题,相对简单,是一道模拟题,也没有坑,顺着题目要求写就ok!
在判断奇偶性的时候可以使用位运算,以及三目运算符
奇数的二进制最后一位都是1,偶数的最后一位都是0
#include<iostream>
using namespace std;
int main() {
int n, cnt = 0;
cin >> n;
while (n != 1) {
n = n & 1 == 1 ? (3 * n + 1) / 2 : n / 2;
cnt++;
}
cout << cnt;
}
#include<iostream>
using namespace std;
int main() {
int n, cnt = 0;
cin >> n;
while (n != 1) {
if (n % 2 != 0) {
n = (3 * n + 1) / 2;
cnt++;
}
else {
n /= 2;
cnt++;
}
}
cout << cnt;
}