天天看点

使用C语言实现Hailstone序列

Hailstone的数学部分不做讲解,程序如下,我把Hailstione程序写为3部分,main.cpp、function.cpp、Hailstone.h.各部分如下:

main.cpp

#include "Hailstone.h"

int main()
{
    Hail();

    return 0;
}
           

function.cpp

#include "Hailstone.h"

void Hail()
{
    int N;
    cout << "输入数值:" << endl;
    cin >> N;
    int result = Hailstone(N);
    cout << "length =" << result << endl;
}


int Hailstone(int n)
{
    int length = 1;
    while(1 < n)
    {
        (n % 2 != 0) ? (n = 3 * n + 1) : (n = n / 2);
        cout << "n = " << n << endl;
        length++;
    }
    return length;
}
           

Hailstone.h

#include <stdlib.h>
#include <iostream>

using namespace std;

int Hailstone(int n);
void Hail();