Laravel  
laravel
文档
数据库
架构
入门
php技术
    
Laravelphp
laravel / php / java / vue / mysql / linux / python / javascript / html / css / c++ / c#

c++角谷猜想

作者:月下孤魂   发布日期:2025-08-12   浏览:20

#include <iostream>

using namespace std;

// 角谷猜想(Collatz Conjecture)函数
void collatzConjecture(int n) {
    int steps = 0;
    cout << "Starting number: " << n << endl;

    while (n != 1) {
        cout << n << " ";
        if (n % 2 == 0) {
            n = n / 2;  // 如果 n 是偶数,除以 2
        } else {
            n = 3 * n + 1;  // 如果 n 是奇数,乘以 3 加 1
        }
        steps++;
    }
    cout << n << endl;
    cout << "Steps taken: " << steps << endl;
}

int main() {
    int number;
    cout << "Enter a positive integer: ";
    cin >> number;

    if (number <= 0) {
        cout << "Please enter a positive integer." << endl;
        return 1;
    }

    collatzConjecture(number);
    return 0;
}

解释说明

  1. 角谷猜想(Collatz Conjecture)

    • 角谷猜想是一个数学上的未解问题。它指出,对于任何一个正整数 n,如果 n 是偶数,则将其除以 2;如果 n 是奇数,则将其乘以 3 再加 1。重复这个过程,最终 n 总会变为 1。
  2. 代码结构

    • collatzConjecture(int n) 函数实现了角谷猜想的逻辑。
      • 它接受一个整数 n 作为输入,并打印出每一步的结果。
      • 使用 while 循环来不断更新 n 的值,直到 n 变为 1。
      • 记录并输出总共需要的步数。
    • main() 函数负责从用户那里获取输入,并调用 collatzConjecture 函数进行处理。
  3. 输入验证

    • main() 中,程序会检查用户输入的是否是正整数。如果不是,程序会提示用户重新输入。
  4. 输出

    • 程序会输出每一步的中间结果以及最终需要的步数。

希望这段代码和解释对你有帮助!

上一篇:c++泛型编程

下一篇:c++ char* 转string

大家都在看

c++闭包

c++单引号和双引号的区别

c++ 注释

c++如何判断素数

c++ orm框架

c++freopen怎么用

c++ 获取系统时间

c++进制转换函数

c++ vector 清空

c++ tcp

Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3

Laravel 中文站