PAT (Basic Level) Practice (中文)

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

卡拉兹(Callatz)猜想:

对任何一个正整数 n,如果它是偶数,那么把它砍掉一半;如果它是奇数,那么把 (3n+1) 砍掉一半。这样一直反复砍下去,最后一定在某一步得到 n=1。卡拉兹在 1950 年的世界数学家大会上公布了这个猜想,传说当时耶鲁大学师生齐动员,拼命想证明这个貌似很傻很天真的命题,结果闹得学生们无心学业,一心只证 (3n+1),以至于有人说这是一个阴谋,卡拉兹是在蓄意延缓美国## 数学界教学与科研的进展……

我们今天的题目不是证明卡拉兹猜想,而是对给定的任一不超过 1000 的正整数 n,简单地数一下,需要多少步(砍几下)才能得到 n=1?

输入格式:

每个测试输入包含 1 个测试用例,即给出正整数 n 的值。

输出格式:

输出从 n 计算到 1 需要的步数。

输入样例:

3

输出样例:

5

整体思路:

分为奇数和偶数
偶数:除以二
奇数:就乘以3加1(注意,当奇数做完这些运算时就已经变成了一个偶数)
因为最后经过各种变化,都会变成偶数,偶数经过不断的除以2,最终变成1,所以前提条件就是n不等于1的时候

整体代码如下:

#include <stdio.h>
int main(void)
{   int n;int i = 0;scanf("%d", &n);while( n != 1 ){if( n % 2 == 0 ){n = n / 2;i++; }elsen = 3 * n + 1;}printf("%d", i); return 0;
}

1001 害死人不偿命的(3n+1)猜想 (15分) PAT (Basic Level) Practice (中文)C语言版相关推荐

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

    1001 害死人不偿命的(3n+1)猜想 (15分) 卡拉兹(Callatz)猜想: 对任何一个正整数 n,如果它是偶数,那么把它砍掉一半:如果它是奇数,那么把 (3n+1) 砍掉一半.这样一直反复砍 ...

  2. C++学习之路 | PTA乙级—— 1001 害死人不偿命的(3n+1)猜想 (15分)(精简)

    1001 害死人不偿命的(3n+1)猜想 (15分) 卡拉兹(Callatz)猜想: 对任何一个正整数 n,如果它是偶数,那么把它砍掉一半:如果它是奇数,那么把 (3n+1) 砍掉一半.这样一直反复砍 ...

  3. 【PAT乙】1001 害死人不偿命的(3n+1)猜想 (15分) 模拟,水水更健康

    1001 害死人不偿命的(3n+1)猜想 (15分) 卡拉兹(Callatz)猜想: 对任何一个正整数 n,如果它是偶数,那么把它砍掉一半:如果它是奇数,那么把 (3n+1) 砍掉一半.这样一直反复砍 ...

  4. 1001 害死人不偿命的(3n+1)猜想 (15分)_Quentin

    题目链接:1001 害死人不偿命的(3n+1)猜想 (15分) 卡拉兹(Callatz)猜想: 对任何一个正整数 n,如果它是偶数,那么把它砍掉一半:如果它是奇数,那么把 (3n+1) 砍掉一半.这样 ...

  5. PAT(乙级) 1001 害死人不偿命的(3n+1)猜想 (15 分) (python3)

    PAT(乙级) 1001 害死人不偿命的(3n+1)猜想 (15 分) (python3) 第一次写点博客记录自己学习算法的过程,因为个人能力有限,会不定期发布一些PAT上题目的代码 PAT 乙级的1 ...

  6. 【PAT乙级】1001 害死人不偿命的(3n+1)猜想 (15 分)

    https://pintia.cn/problem-sets/994805260223102976/problems/994805325918486528 精简写法: #include<cstd ...

  7. [Java] 1001. 害死人不偿命的(3n+1)猜想 (15)-PAT乙级

    1001. 害死人不偿命的(3n+1)猜想 (15) 卡拉兹(Callatz)猜想: 对任何一个自然数n,如果它是偶数,那么把它砍掉一半:如果它是奇数,那么把(3n+1)砍掉一半.这样一直反复砍下去, ...

  8. PAT乙级—1001. 害死人不偿命的(3n+1)猜想 (15)-native

    卡拉兹(Callatz)猜想: 对任何一个自然数n,如果它是偶数,那么把它砍掉一半:如果它是奇数,那么把(3n+1)砍掉一半.这样一直反复砍下去,最后一定在某一步得到n=1.卡拉兹在1950年的世界数 ...

  9. PAT 乙级 1001. 害死人不偿命的(3n+1)猜想 (15) Java版

    卡拉兹(Callatz)猜想: 对任何一个自然数n,如果它是偶数,那么把它砍掉一半:如果它是奇数,那么把(3n+1)砍掉一半.这样一直反复砍下去,最后一定在某一步得到n=1.卡拉兹在1950年的世界数 ...

最新文章

  1. matlab 自定义对象,面向对象:MATLAB的自定义类 [MATLAB]
  2. 如何轻松学会一门外语?
  3. linux控制流程,Linux-流程控制:for 循环
  4. 深入探究函数返回局部变量
  5. pytorch无法将模型加载到gpu上
  6. Hibernate 批量插入、更新与删除
  7. 计算机视觉课_计算机视觉教程—第4课
  8. ftp4j jar maven依赖_maven系列--maven添加第三方、本地依赖
  9. [导入]MSIL: call callvirt
  10. 查询排序_MySQL查询性能优化
  11. mysql 主从复制 gtid_Mysql-GTID主从复制
  12. linux常用命令练习:wc、cut、|、tee、tail
  13. “我爱淘”冲刺阶段Scrum站立会议3
  14. laydate组件 无法传值_Vue组件间通信几种方式,你用哪种?【实践】
  15. 设计一个递归算法由二叉树BT复制产生另一棵二叉树BT1(假设二叉树采用二叉链存储结构)
  16. iptv组播和单播的区别
  17. layui框架静态表格怎么写
  18. RDS报警问题解决过程
  19. stata生成脉冲响应图怎么导出_Stata:面板VAR模型(pvar2命令)
  20. 20175208 实验二 《Java面向对象程序设计》实验报告

热门文章

  1. 永恒之蓝漏洞复现MS17-010
  2. fatal error LNK1112: 模块计算机类型“X86”与目标计算机类型“x64”冲突——我的解决方案
  3. Java 时间格式处理
  4. 热插拔技术--以ADM1177为例说明
  5. 微信小程序集成jenkins自动打码
  6. python爬虫妹子图_Python 爬虫入门(二)——爬取妹子图
  7. Chef框架之Cookbook的介绍及应用
  8. 快速从入门到精通!mysql删除索引
  9. echarts 中国地图china.js下载
  10. 【Leetcode】1824. Minimum Sideway Jumps