B1001-害死人不偿命的(3n+1)

最近在看《算法笔记》,进度不快,固定每天看两道题,最近也很浮躁,感觉内耗太严重,觉得需要把每天写的发出来,也算是一个发泄出口吧。

第一道题很简单,害死人不偿命的(3n+1), alt

主要就是用到了判断奇偶的方法,也就是取模。是偶数就返回这个数的半,不是偶数就把它的(3n+1)砍掉一半。 这样判断一个数字经过多少步能够得到n=1。

#include <stdio.h>
int main(){
int n,flag=0;
scanf("%d",&n);
while(n!=1){
if(n>=1&&n<=1000){
	if(n%2==0){
		n = n/2;
		++flag;
	}
	else{
		n=(3*n+1)/2;
		++flag;
	}
}
}
printf("%d",flag);
return 0;
}

利用while循环语句反复判断n是否是1,此外还需要设置一个变量flag,用来记步,这样,当n=1时,返回的step就是需要的步数。

全部评论

相关推荐

想做乐观锁:都不用AI,咱们都古法编程吧,让节奏慢一点
点赞 评论 收藏
分享
04-01 11:08
中原工学院 Java
老六f:感觉这种培训期过了就找理由给你开了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务