0
已解决
邵逸儒
中级天翼
中级天翼
1798 万变不离1
题目描述 Description
有一个著名的猜想,叫做角谷猜想,通俗地讲内容是这样的:任意给定一个正整数n,当n是偶数时,将它除以2,即将它变成n/2;当n是奇数时,就将它变成3n+1,……,若干步后,总会得到1。 我们要求经过几次变化,1这个数字是第一次出现。
输入描述 Input Description
输入一个正整数n
输出描述 Output Description
输出第一次出现1需要变化的次数
样例输入 Sample Input
6
样例输出 Sample Output
8
数据范围及提示 Data Size & Hint
数字的变化过程如下:
6--6÷2--3--3×3+1--10--10÷2--5--5×3+1--16--16÷2--8--8÷2--4--4÷2--2--2÷2--1
一共变化了8次。
@酷町喵~o( =∩ω∩= )o~
@葛新
@梁锦程
@陆麟瑞
1
已采纳
杨陈卓
新手天翼
新手天翼
定义整型变量n,i=0;
输入n;
核心代码
while (n!=1)
{
if (n%2==1)
n=n*3+1;
else
n=n/2;
i++;
}
最后输出i即可
1
陆麟瑞
资深天翼
资深天翼
while循环,每次变化一个变量,在判断是否为偶数或奇数,再分别做一些操作。
ans一开始为0
while(n!=1)//当n不为一时后循环
{
if(n%2==0)//如果它是偶数
{
n/=2;
}
else{//如果它是奇数
n=3*n+1;
}
ans++;//增加一次操作
}
0
0