C++知识精讲6——角gu猜想

发布于:2022-10-31 ⋅ 阅读:(319) ⋅ 点赞:(0)

本文我们来讲C++知识精讲的第6篇,角gu猜想,此专栏会讲许多,各种各样的类型,如果喜欢此专栏请订阅持续关注,感谢大家的支持。接下来,进入今天的知识精讲。

---------------------------------------------------------------------------------------------------------------------------------

心得分享 

作者最近几天正在备战CSP,在各种网站上刷题,发现,此题的出现率及其之高,因此,我会讲解此题的思路,希望能帮助到大家。

-------------------------------------------------------------------------------------------------------------------------------- 

角gu猜想涉及知识点 :

角gu猜想这个题只要认真思考,发现这个题还是很简单的,只需要重复的判断即可。

-------------------------------------------------------------------------------------------------------------------------------- 

实战带入知识点: 

实战导入:

给定一个正整数 n,若 n 是偶数,将 n 的值减少一半,如果 n 是奇数,将 n 的值乘 3,再加 1。不断地重复这个操作,任何正整数最后都会变成 1。这个猜想很可能是正确的,因为借助计算机,尚未发现存在反例。

给定 n,请输出用上述操作将 n 变成 1 的过程。

输入格式

单个整数表示 n。

输出格式

若干整数,表示用角谷变换将 n 变成 1 的过程。

-------------------------------------------------------------------------------------------------------------------------------- 

算法分析:

重复判断条件并做出题目相关的操作即可。

---------------------------------------------------------------------------------------------------------------------------------

代码实现:

#include<bits/stdc++.h>
using namespace std;

int main() {
 int n;
 cin >> n;
 while (n != 1)

{
  if (n % 2 == 0) {
   n = n / 2;
   cout << n<<" ";
  }
  else {
   n = n * 3 + 1;
   cout << n <<" ";
  }
  }
 }

-------------------------------------------------------------------------------------------------------------------------------- 

小结:

这就是角gu猜想的题解,把知识点带入实战,如有疑问,请在评论区留言,作者看到后,会一一回复的。


网站公告

今日签到

点亮在社区的每一天
去签到