思路:
偶数砍一刀并计数,奇数*3+1变为偶数继续砍刀。
想复杂了,以为要做些优化才能通过,所以先写了个递归,打算后面再优化。
没想到提交上去直接通过了?,其实一个循环就能搞定。
源代码
#include <stdio.h>
#include <stdlib.h>
int main()
{
int num;
scanf("%d",&num);
int n = 0;
n = getNum(n,num);
printf("%d",n);
return 0;
}
int getNum(int n,int num){
if(num == 1){
return n;
}else if(num%2==0){
num /= 2;
n += 1;
getNum(n,num);
}else{
num = 3*num + 1;
getNum(n,num);
}
}