C++ :: Aufgabe #261
2 Lösungen
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:
//-----------------------------------------------------------------------------
// 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);
}#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";
}