题目描述
给定一个正整数 N,如果它是偶数,那么让它除以 2;如果它是奇数,那么让它先乘 3 加 1 再除以 2。这样一直下去,最终总能在某一步得到N=1。
给定一个正整数 N,问需要多少步可以让 N 等于 1。
输入描述
一个正整数N(1≤N≤1000)。
输出描述
输出让 N 等于 1 的步数。
样例
输入
3
输出
5
解释
3 => 5 => 8 => 4 => 2 => 1
#include <iostream>
#include <string>
#include <algorithm>
#include<math.h>
#include<queue>
#include<vector>
using namespace std;
int main() {
int n;
cin >> n;
int count = 0;
while (n != 1) {
if (n % 2 == 0) {
n = n / 2;
count++;
}
else {
n = (3 * n + 1) / 2;
count++;
}
}
cout << count;
}



最新评论