首页 > 试题广场 >

魔法数字变换

[编程题]魔法数字变换
  • 热度指数:13997 时间限制: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步 
头像 zzfyupup
发表于 2022-05-30 11:16:00
#include<stdio.h> int main() { int n; int count=0; scanf("%d",&n); while(n!=1) { if(n%2==0) n=n/2; 展开全文
头像 牛客HFL
发表于 2023-08-09 12:25:05
#include<bits/stdc++.h> using namespace std; int main() { int n,cnt=0; // ' cnt ' 是计数器 cin>>n; while(n!=1) // 如果 ' n ' 等于 展开全文
头像 潍坊鲨鱼公园儿童大学
发表于 2021-01-25 08:36:22
#include <iostream> using namespace std; int main() { int num; cin >> num; int step = 0; while (num != 1) { // 为 展开全文
头像 melon.
发表于 2023-02-16 14:37:40
n = int(input()) step = 0 while n != 1: if n % 2 == 0: n /= 2 step += 1 else: n = n*3 + 1 step += 1 print(st 展开全文
头像 在写代码的贝贝很幸福
发表于 2024-10-28 23:05:15
#include <stdio.h> int main() { int n=0; int count=0; scanf("%d",&n); while(n!=1) { if(n%2==0) { n 展开全文
头像 Zerone·
发表于 2022-05-21 17:06:18
#include<stdio.h> int main() {     unsigned int n, count = 0;     scanf("%d", &n);     if (n >= 0 && 展开全文
头像 早风晚风
发表于 2025-09-09 09:05:55
#include<stdio.h> int main() {     int n;     scanf("%d",&n);     int& 展开全文
头像 .沫沫
发表于 2022-04-20 13:35:37
#include <stdio.h> int main() { int n,i; scanf("%d",&n); for(i=0;n-1;i++) { if(n%2==0) n=n/2.0; else n=3*n+1; } prin 展开全文
头像 一只咖啡君
发表于 2022-12-06 18:01:39
#include <stdio.h> int main() { int n, cnt = 0; scanf("%d", &n); while (n != 1) { if (n % 2) n = 3 * n + 1; 展开全文
头像 克里里克kliric
发表于 2024-08-01 12:08:17
#include <stdio.h> int main() { int n = 0;//输入的整数 scanf("%d", &n); int i = 0; while (n > 1)//循环条件 { i 展开全文

问题信息

上传者:牛客301599号
难度:
77条回答 4029浏览

热门推荐

通过挑战的用户

查看代码
魔法数字变换