首页 > 试题广场 >

魔法数字变换

[编程题]魔法数字变换
  • 热度指数:12995 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32M,其他语言64M
  • 算法知识视频讲解
有一个数字魔法,给你一个正整数n,如果n为偶数,就将他变为n/2, 如果n为奇数,就将他变为乘3加1
不断重复这样的运算,经过有限步之后,一定可以得到1
牛牛为了验证这个魔法,决定用一个整数来计算几步能变成1


输入描述:
输入一个正整数n,范围在100以内


输出描述:
输出一个整数
示例1

输入

3

输出

7

说明

3->10->5->16->8->4->2->1。总共需要7步 
n = int(input())
sep = 0
while n != 1:
    if  n % 2 == 0:
        n =n//2
        sep += 1
    else:
        n = n*3 +1 
        sep += 1
print(sep)

发表于 2024-09-28 14:34:02 回复(0)
n = int(input())
s = 0
while n != 1:
    try:
        if n % 2 == 0:
            n = n/2
        else:
            n = 3*n + 1
        s += 1
    except:
        break
print(s)
发表于 2024-05-08 10:59:40 回复(0)
n=int(input())
num=0
while n!=1:
    if n%2==0:
        n/=2
    else:
        n=3*n+1
    num+=1  
print(num)          

发表于 2023-01-19 11:22:21 回复(0)
n = int(input())
steps = 0
while n != 1:
    try:
        if n%2 ==0 :
            n = n/2
            steps += 1
        else:    
            n = 3*n+1
            steps += 1
    except:
        break
         
print (steps)

发表于 2022-03-03 11:04:01 回复(0)