版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
Problem F: 零起点学算法34——3n+1问题
分析
因为不知道循环次数,所以使用while语句,然后用判断来进行计数。
Description
任给一个正整数n,如果n为偶数,就将它变为n/2,如果n为奇数,则将它变为乘3加1(即3n+1)。不断重复这样的运算,经过有限步后,一定可以得到1 。
Input
输入1个正整数n(n <= 10^9)
Output
输出变化的次数
Sample Input
3
Sample Output
7
#include<stdio.h>
int main(){
int n,count=0;
scanf("%d",&n);
while(n>1){
if(n%2==0)
{
n=n/2;
count++;
}
else
{
n=3*n+1;
count++;
}
}
printf("%d\n",count);
return 0;
}
总结
1、不知道循环次数时常使用while语句。