问题标题: 酷町堂:1031 千变万化总是“1”

0
0
已解决
邹昊轩
邹昊轩
资深光能
资深光能

1031   千变万化总是“1”经验值:800

题目描述 Description

数字“1”是所有正整数的伊始,给人以无限的遐想。任何一个正整数,不管千变万化,通过一定的运算规则,总可以得到1。其规则如下:每一个正整数,如果它是奇数,则对它乘 3 再加 1,如果它是偶数,则对它除以 2,如此循环,最终都能够得到 1,故又称为3n+1 猜想。
本题要求输入任意一个正整数,将经过千变万化得到1的过程输出出来。

输入描述 Input Description

输入为一个正整数n(n≤2000000)。

输出描述 Output Description

输出从整数n经过千变万化得到1的过程,每一步单独为一行,每一行中显示该步的计算公式,并在最后一行输出"End"。如果输入为1,则直接输出"End"即可(数字与符号之间没有空格)。

样例输入 Sample Input

3

样例输出 Sample Output

3*3+1=10 10/2=5 5*3+1=16 16/2=8 8/2=4 4/2=2 2/2=1 End

 

来看看,谁能帮我一下。


0
已采纳
被禁言 姜思远
姜思远
初级光能
初级光能

这题要用while循环,第一步先判断n是否为1,若不是,则继续判断n是奇数还是偶数,则对它乘 3 再加 1,如果它是偶数,则对它除以 2,输出时,要输出过程(详情见样例输出,奇数和偶数不一样哦),最后在循环外输出End

0
吕若朴
吕若朴
中级光能
中级光能

这一题不难!

用while循环,每次判断是奇数还是偶数,再输出变化方式。记得用变量记录下数值!

0
赵逸凡
赵逸凡
初级启示者
初级启示者

卡拉兹猜想,直接函数递归就可以了

赵逸凡在2020-04-19 17:08:01追加了内容

@王子健 这道题不就是2018年市赛第3题改版嘛。。。

 

0
钱成
钱成
初级守护
初级守护

我记得这每日一题上的,,

基本操作:定义,输入

先判断输入的是不是1,是1就直接输入"End"

如果不是,用while,在判断是不是2的倍数,套式子,最后"End"

emmm,好像没了

对了记得换行。。

0
0
0
0
陈喆鹏
陈喆鹏
资深光能
资深光能

递归

if()return f(x/=2);

else return f(x*3+1);

0
沈峻宇
沈峻宇
资深天翼
资深天翼

while+if循环判断奇偶,定义变量记录下判断结果!

我要回答