题目描述
给定一个正整数 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; }
最新评论