Problem F: 零起点学算法34——3n+1问题

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/david2000999/article/details/102698061

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语句。

猜你喜欢

转载自blog.csdn.net/david2000999/article/details/102698061