本文我们来讲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猜想的题解,把知识点带入实战,如有疑问,请在评论区留言,作者看到后,会一一回复的。