设一个数n
当n为偶数时n/2
当n为奇数时3n+1
直到最后为1
例如n=3
得到3,10 5, 16, 8, 4, 2, 1
或n = 12
得到12, 6, 3, 10, 5, 16, 8, 4, 2, 1
但结果要是这个数列的长度
如输入3 得到8
输入12 得到10
刚刚入门
import java.util.Scanner;
class App {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt();
int count = 1;
while (n != 1) {
if (n % 2 == 0)
n /= 2;
else
n = 3 * n + 1;
count++;
}
System.out.println(count);
scanner.close();
}
}
码风丑,请见谅
#include <bits/stdc++.h>
using namespace std;
int n,cnt;
int main()
{
cin>>n;
cnt=1;//n本身也算一个
while (n!=1)
{
cnt++;
if(n%2==0) n/=2; //偶数
else n=3*n+1; // 奇数
cout<<n<<endl;
}
cout<<cnt<<endl;
return 0;
}
自己想想就能写出来啊,我觉得这个问题并不难啊