1001 害死人不偿命的(3n+1)猜想
一只大二小白因为实在是太菜了决定开始刷一下pat的题,正处于迷茫期,也没有很牛逼的技术,所以只能从最基础的题目刷起。现计划每周20道题,尽量在一个月到一个半月时间内刷完这95道。之后再去刷A。我做题的过程遇到不会的也会参考其他大佬的博客,这里可能更适合和我一样的小白吧(可能没人和我一样都大二了会的还很少)。我会分享详细的做题思路供大家参考,互相学习。
只看代码可以直接拉到最后
简单思路
还好第一题不难,仔细分析题目就会明白具体要做什么
- 如果是偶数直接砍半。
- 如果是奇数则先扩大至(3n+1)在做砍半。
- 就是两个判断语句+循环就ok。
上代码
// #include<stdio.h>
int main(){
int count=0;
int n;
scanf("%d",&n);
while(n!=1){
if(n%2==0){
n = n/2;
count++;
}
else if(n%2==1){
n = (3*n+1)/2;
count++;
}
}
printf("%d",count);
return 0;
}
若有不足向大家请教~