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就是需要的步数。

全部评论

相关推荐

dachang盒子:26届秋招必须有实习经历,建议找个实习过度下,同时项目重复率也比较高没有什么难点亮点,我这里有大厂真实的项目可以提供给你学习也可以给你包装大厂实习来提高你的竞争力,感兴趣的话可以私信我或者点我主页简介
你已经投递多少份简历了
点赞 评论 收藏
分享
活泼的代码渣渣在泡池...:哈哈哈挺好的,我也上岸美团了,不说了,我又接了一单
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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