1001 害死人不偿命的(3n+1)猜想 (15分) PAT (Basic Level) Practice (中文)C语言版
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语言版相关推荐
- 1001 害死人不偿命的(3n+1)猜想 (15分)
1001 害死人不偿命的(3n+1)猜想 (15分) 卡拉兹(Callatz)猜想: 对任何一个正整数 n,如果它是偶数,那么把它砍掉一半:如果它是奇数,那么把 (3n+1) 砍掉一半.这样一直反复砍 ...
- C++学习之路 | PTA乙级—— 1001 害死人不偿命的(3n+1)猜想 (15分)(精简)
1001 害死人不偿命的(3n+1)猜想 (15分) 卡拉兹(Callatz)猜想: 对任何一个正整数 n,如果它是偶数,那么把它砍掉一半:如果它是奇数,那么把 (3n+1) 砍掉一半.这样一直反复砍 ...
- 【PAT乙】1001 害死人不偿命的(3n+1)猜想 (15分) 模拟,水水更健康
1001 害死人不偿命的(3n+1)猜想 (15分) 卡拉兹(Callatz)猜想: 对任何一个正整数 n,如果它是偶数,那么把它砍掉一半:如果它是奇数,那么把 (3n+1) 砍掉一半.这样一直反复砍 ...
- 1001 害死人不偿命的(3n+1)猜想 (15分)_Quentin
题目链接:1001 害死人不偿命的(3n+1)猜想 (15分) 卡拉兹(Callatz)猜想: 对任何一个正整数 n,如果它是偶数,那么把它砍掉一半:如果它是奇数,那么把 (3n+1) 砍掉一半.这样 ...
- PAT(乙级) 1001 害死人不偿命的(3n+1)猜想 (15 分) (python3)
PAT(乙级) 1001 害死人不偿命的(3n+1)猜想 (15 分) (python3) 第一次写点博客记录自己学习算法的过程,因为个人能力有限,会不定期发布一些PAT上题目的代码 PAT 乙级的1 ...
- 【PAT乙级】1001 害死人不偿命的(3n+1)猜想 (15 分)
https://pintia.cn/problem-sets/994805260223102976/problems/994805325918486528 精简写法: #include<cstd ...
- [Java] 1001. 害死人不偿命的(3n+1)猜想 (15)-PAT乙级
1001. 害死人不偿命的(3n+1)猜想 (15) 卡拉兹(Callatz)猜想: 对任何一个自然数n,如果它是偶数,那么把它砍掉一半:如果它是奇数,那么把(3n+1)砍掉一半.这样一直反复砍下去, ...
- PAT乙级—1001. 害死人不偿命的(3n+1)猜想 (15)-native
卡拉兹(Callatz)猜想: 对任何一个自然数n,如果它是偶数,那么把它砍掉一半:如果它是奇数,那么把(3n+1)砍掉一半.这样一直反复砍下去,最后一定在某一步得到n=1.卡拉兹在1950年的世界数 ...
- PAT 乙级 1001. 害死人不偿命的(3n+1)猜想 (15) Java版
卡拉兹(Callatz)猜想: 对任何一个自然数n,如果它是偶数,那么把它砍掉一半:如果它是奇数,那么把(3n+1)砍掉一半.这样一直反复砍下去,最后一定在某一步得到n=1.卡拉兹在1950年的世界数 ...
最新文章
- matlab 自定义对象,面向对象:MATLAB的自定义类 [MATLAB]
- 如何轻松学会一门外语?
- linux控制流程,Linux-流程控制:for 循环
- 深入探究函数返回局部变量
- pytorch无法将模型加载到gpu上
- Hibernate 批量插入、更新与删除
- 计算机视觉课_计算机视觉教程—第4课
- ftp4j jar maven依赖_maven系列--maven添加第三方、本地依赖
- [导入]MSIL: call callvirt
- 查询排序_MySQL查询性能优化
- mysql 主从复制 gtid_Mysql-GTID主从复制
- linux常用命令练习:wc、cut、|、tee、tail
- “我爱淘”冲刺阶段Scrum站立会议3
- laydate组件 无法传值_Vue组件间通信几种方式,你用哪种?【实践】
- 设计一个递归算法由二叉树BT复制产生另一棵二叉树BT1(假设二叉树采用二叉链存储结构)
- iptv组播和单播的区别
- layui框架静态表格怎么写
- RDS报警问题解决过程
- stata生成脉冲响应图怎么导出_Stata:面板VAR模型(pvar2命令)
- 20175208 实验二 《Java面向对象程序设计》实验报告
热门文章
- 永恒之蓝漏洞复现MS17-010
- fatal error LNK1112: 模块计算机类型“X86”与目标计算机类型“x64”冲突——我的解决方案
- Java 时间格式处理
- 热插拔技术--以ADM1177为例说明
- 微信小程序集成jenkins自动打码
- python爬虫妹子图_Python 爬虫入门(二)——爬取妹子图
- Chef框架之Cookbook的介绍及应用
- 快速从入门到精通!mysql删除索引
- echarts 中国地图china.js下载
- 【Leetcode】1824. Minimum Sideway Jumps