C++ :: Aufgabe #261

2 Lösungen Lösungen öffentlich

Die Collatz-Sequenz (3n+1)

Anfänger - C++ von DragStar - 23.03.2020 um 09:34 Uhr
Schreibe ein Programm, welches die Eingabe einer Zahl anfordert und dann von dieser Zahl die Collatz-Sequenz ausgibt.

Lösungen:

vote_ok
von Steuerkrise (60 Punkte) - 09.04.2020 um 14:20 Uhr
Quellcode ausblenden C-Code
//-----------------------------------------------------------------------------
// collatz_sequence.cpp
//
// Programm to calculate the collatz sequence 
// by the Input of a natural unsigned number.
//
// Authors: Steuer Christian
//-----------------------------------------------------------------------------
//

#include <iostream>

using std::cin;
using std::cout;

//-----------------------------------------------------------------------------
// Find out if the number is even or odd.
//

bool even_number(unsigned number)
{
	if (number % 2 == 0)
		return true;
	else
		return false;
}

//-----------------------------------------------------------------------------
// Calculate the collatz sequence.
//

void collatz(unsigned number)
{
	while (number != 1)
	{
		if (even_number(number))
			number /= 2;
		else
			number = (3 * number) + 1;

		cout << number << ", ";
	}
}

int main()
{
	unsigned n_number = 0;
	cout << "Put in a natural number > 0: ";
	cin >> n_number;
	collatz(n_number);
}
vote_ok
von basic (1310 Punkte) - 27.09.2020 um 23:51 Uhr
Quellcode ausblenden C-Code
#include <iostream>
#include <string>

using namespace std;

int main() {
	int num;

	do {
		cout << "Zahl > 0 eingeben: ";
		cin >> num;

		if(num <= 0) {
			cout << "Zahl ist 0 oder kleiner!\n\n";
		}
	} while(num <= 0);

	cout << num << " ";

	while(num > 1) {
		if(num % 2 == 0) {
			num /= 2;
		} else {
			num = (num * 3) + 1;
		}

		cout << num << " ";
	}

	cout << "\n";
}