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

简介: 1001 害死人不偿命的(3n+1)猜想


题目描述

链接

思路

首先对于给定的一个数,要判断它的奇偶性。假设这个数是n,用count记录步数

1.偶数,n/=2;count++

2.奇数,(3*n+1)/2赋给n,count++;

循环一直到n为1.最后输出.

代码实现

int f(int n)
{
  int count = 0;
  
  while (n!=1)//是否为1
  {
    if (n % 2 == 0)//偶
    {
      n /= 2;
      count++;
    }
    else//奇
    {
      n = (3 * n + 1) / 2;
      count++;
    }
  }
  return count;//步数
}
int main()
{
  int n;
  scanf("%d", &n);
  printf("%d\n", f(n));
  return 0;
}

相关文章
|
1月前
|
算法
算法人生(3):从“贪心算法”看“战胜拖延”(完美主义版)
本文探讨了拖延症的一个常见原因——完美主义,并从贪心算法的角度提供启示。贪心算法通过局部最优决策逼近全局最优解,不保证全局最优,但寻求满意解。完美主义者的拖延源于高标准、过度关注细节、压力和时间管理困难。为解决这个问题,建议接受不完美,设定合理目标,追求良好效果,以及培养时间管理技巧。通过实例说明,调整心态和策略,可以提高工作效率并克服拖延。
|
9月前
|
测试技术
害死人不偿命的(3n+1)猜想
害死人不偿命的(3n+1)猜想
|
9月前
|
测试技术
软件测试面试者注意啦!尽量避开这个坑,千万别让培训机构割韭菜啦!
软件测试面试者注意啦!尽量避开这个坑,千万别让培训机构割韭菜啦!
四道好题分享(看似简单,但是棘手)
四道好题分享(看似简单,但是棘手)
77 0
|
测试技术
PAT 1001 害死人不偿命的(3n+1)猜想
对任何一个正整数 n,如果它是偶数,那么把它砍掉一半;如果它是奇数,那么把 (3n+1) 砍掉一半。
79 0
|
机器学习/深度学习 测试技术
PAT乙级1001 害死人不偿命的(3n+1)猜想 (15分)
PAT乙级1001 害死人不偿命的(3n+1)猜想 (15分)
70 0
|
测试技术
1001 害死人不偿命的(3n+1)猜想 (15 分)
1001 害死人不偿命的(3n+1)猜想 (15 分)
55 0
|
算法
查找算法——俄罗斯轮盘赌算法(看谁运气不好)
查找算法——俄罗斯轮盘赌算法(看谁运气不好)
524 0
查找算法——俄罗斯轮盘赌算法(看谁运气不好)
|
程序员 C++ 知识图谱
卧槽!这些笑死人不偿命的代码,你见识过吗?
卧槽!这些笑死人不偿命的代码,你见识过吗?
135 0
卧槽!这些笑死人不偿命的代码,你见识过吗?