Make a C program that prompts the user to input a positive integer value, and compute the
following sequence: If the number is even, halve it; if it's odd, multiply by 3 and add 1. Repeat
this process until the value is 1, printing out each value. Finally print out how many of these
operations you performed.
Typical output might be:
Inital value is 9
Next value is 28
Next value is 14
Next value is 7
Next value is 22
Next value is 11
Next value is 34
Next value is 17
Next value is 52
Next value is 26
Next value is 13
Next value is 40
Next value is 20
Next value is 10
Next value is 5
Next value is 16
Next value is 8
Next value is 4
Next value is 2
Final value 1, number of steps 19
If the input value is less than 1, print a message containing the word
Error
#include<iostream>
using namespace std;
int main()
{
int num;
cout << "Please, input positive integer value: ";
cin >> num;
int steps = 0;
while (num >= 0)
{
steps++;
if (num % 2 == 0)
{
num /= 2;
}
else if (num % 2 == 1)
{
num = (num * 3 + 1);
}
if (num == 1)
{
cout << "\nFinal value 1 number of steps " << steps;
break;
}
else if (num<1)
{
cout << "\nError";
break;
}
else
{
cout << "\nNext value is " << num;
}
}
}
Comments
Leave a comment