1001. 害死人不偿命的(3n+1)猜想 (15)

本文提供了使用Go、C/C++、Python和Java四种不同编程语言实现的Hailstone序列计数程序。每种语言的实现都展示了如何通过循环来计算直至序列达到1所需的步数。
Python3.8

Python3.8

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

以后我每学一门语言,都要用这种语言把这道题写一遍。

Go版

package main

import "fmt" 
func main(){
	var n, step int
	fmt.Scanf("%d", &n)
	for ;n != 1;{
		if n % 2 == 1{ 
			n = (3*n+1)/2
		}else{
			n = n/2
		}
		step++
	}
	fmt.Println(step)
}

C/C++版

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

Python版

n = int(input())
cnt = 0
while n != 1:
    if(n&1):  #位运算,如果是奇数结果就为1,偶数就为0
        n=(3*n+1)//2 #这里两个斜杠表示整除
        cnt+=1
    else:
        n=n//2
        cnt+=1
print(cnt)
	

Java版

import java.util.Scanner;
public class Main{

	public static void main(String[] args) {
		Scanner in = new Scanner(System.in);
		int n = in.nextInt();
		int step = 0;
		while(n!=1) {
			if(n%2==1) {
				n=(3*n+1)>>1;
			}else {
				n=n>>1;
			}
			step++;
		}
	System.out.println(step);
	}

}

您可能感兴趣的与本文相关的镜像

Python3.8

Python3.8

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值