Answer to Question #284720 in C++ for papi

Question #284720

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


1
Expert's answer
2022-01-07T13:50:16-0500
#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;
		}		
	}
}

Need a fast expert's response?

Submit order

and get a quick answer at the best price

for any assignment or question with DETAILED EXPLANATIONS!

Comments

No comments. Be the first!

Leave a comment

LATEST TUTORIALS
New on Blog