卡拉兹(Callatz)猜想:

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

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

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

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

输入样例:
3
输出样例:
5

我一开始想设计个计数器,循环里面嵌套一个条件选择,这样应该就没问题了,代码如下:

#include<iostream>
using namespace std;
int main() {int n;int count = 0;//计数器bool flag=true;//循环控制cin >> n;while (flag) {if (n % 2 == 0) {n = n / 2;count++;}//第一种情况else {n = (3 * n + 1) / 2;count++;}//第二种情况if (n == 1) flag = false;//退出循环}cout << count;
}

但是不知道为什么有个样例没过,不知道哪里错了诶!

哈哈,原来是我没考虑到最开始输入的n=1的情况啊!
当我把if (n == 1) { flag = false;//退出循环 }
提到最前面的时候,就过了诶!

#include<iostream>
using namespace std;
int main() {int n;int count = 0;//计数器bool flag=true;//循环控制cin >> n;while (flag) {if (n == 1) {flag = false;//退出循环}else if (n % 2 == 0) {n = n / 2;count++;}//第一种情况else {n = (3 * n + 1) / 2;count++;}//第二种情况}cout << count;
}

心得体会:除了考虑一般条件,还要多考虑边缘条件。

PAT1001 卡拉兹猜想相关推荐

  1. 角谷猜想(卡拉兹猜想)

    角谷猜想(卡拉兹猜想): 任何一个正整数n,如果它是偶数则除以2,如果是奇数则乘以3再加上1之后除以2,这样得到一个新的整数,如此继续进行上述处理,则最后得到的数一定是1.编写应用程序和小程序分别证明 ...

  2. PAT乙级1005,用C语言进行编程,继续卡拉兹猜想

    今天的这道题目着实把我难住了好久,不愧是PAT乙级中值25分的一道题. 这道题呢,是在PAT乙级1001的基础上来增加了一些难度,但是呢,还没有涉及到数据结构,可以说只需要盘清楚逻辑,就可以做这道题了 ...

  3. 【卡拉兹猜想】:对于一个自然数n,如果他是偶数,那么把它砍掉一半;如果是奇数,那么把(3n+1)砍掉一半,一直反复下去,最后在某一步得到n=1。求从n计算到1的步数

    #define _CRT_SECURE_NO_WARNINGS 1 #include<stdio.h> int main() //卡拉兹猜想,对于一个自然数n,如果他是偶数,那么把它砍掉一 ...

  4. 卡拉兹猜想证明用python_科普:数学领域中的感觉像是“民科”的卡拉兹猜想

    这两天看到网络上铺天盖地的关于阿提亚爵士证明黎曼猜想的宣传和讨论,尽管老爵士的证明在数学界中几乎没有引起什么正面的反响,但是仍然对老爵士报以热烈的掌声.黎曼猜想的数学描述对专业不是数学的人士来说,几乎 ...

  5. 卡拉兹猜想java,pat乙级1001解题报告

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

  6. C语言—PTA乙级·基础刷题—1001卡拉兹猜想

    ** 第一题:卡拉兹猜想 ** 题目基础内容:while循环.分支语句."/"与"%"符号. 题解: 首先明确求解问题:给一个小于1000的数n,需要多少次才能 ...

  7. Problem L: 卡拉兹猜想

    Problem Description 对任何一个自然数n(n!=0),如果它是偶数,那么就把它砍掉一半:如果它是奇数,就把(3n+1)砍掉一半.这样一直反复砍下去,最后一定在某一步得到n=1. 对于 ...

  8. c语言卡拉兹猜想,16岁西班牙少年夺ATP正赛首胜 称纳达尔是其偶像

    在北京时间今天上午结束的一场ATP里约热内卢站的首轮比赛中,持外卡出战的16岁西班牙小将卡洛斯·阿尔卡拉兹在自己职业生涯的第一场ATP巡回赛正赛比赛中,以7-6(2)/3-6/7-6(2)力克现排名4 ...

  9. PAT1001. 害死人不偿命的(3n+1)猜想

    1001. 害死人不偿命的(3n+1)猜想 (15) 时间限制 400 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue 卡拉兹(Ca ...

最新文章

  1. Linux学习(八)---crond 任务调度
  2. WPF wpf scrollviewer 触屏滚动 窗体弹跳
  3. JAVE SE 学习day_09:sleep线程阻塞方法、守护线程、join协调线程同步方法、synchronized关键字解决多线程并发安全问题
  4. 比特币交易构成(二)
  5. 接口请求时params与data的区别
  6. Web前端开发笔记——第二章 HTML语言 第二节 基本标签
  7. 使用Spring Boot 2通过OAuth2和JWT进行集中授权
  8. springboot整合rocketmq_面试官:简单说一下RocketMQ整合SpringBoot吧
  9. java 字符串指定编码输出_java对字符的编码处理
  10. Asp.net 5种页面转向方法 转载
  11. Java Dad08
  12. Python:佛祖保佑
  13. layui 改写 table 排序,填加中文按照拼音排序
  14. Fiddler抓包软件[一]下载与安装
  15. C语言程序设计第六次作业——循环结构(2)
  16. registry拉取dockerhub私有镜像
  17. Linux将已经挂载的分区取消挂载
  18. 学习java开发培训
  19. 你用什么作为app应用的后台服务?
  20. python自然语言处理-就职演说语料库

热门文章

  1. MATLAB 串口通信的实现。。
  2. 一台电脑上安装两个Tomcat服务器
  3. MySQL实现字符串分割split并获取长度
  4. python课程报告模板_用Python做一次超酷的项目进度汇报,你值得拥有
  5. 2019.4.summary
  6. 【ACMMM 2022】Learning Hierarchical Dynamics with Spatial Adjacency for Image Enhancement
  7. 服务器蓝屏显示7f,电脑蓝屏代码7f该怎么解决
  8. 牧牛区块链生态,区块链应用于金融领域的优势
  9. 复制conda env环境:/home/×××/bin/python 没有解析器的问题
  10. matlab中负反馈在哪找,simulink负反馈模块