Let n 0 be a given positive integer. For i = 0, 1, 2, ... define if n i is even,
ID: 3633770 • Letter: L
Question
Let n0 be a given positive integer. For i = 0, 1, 2, ... define
if ni is even, then ni+1 = ni/2
if ni is odd, then ni+1 = 3ni + 1
if ni is 1, the sequence ends
Numbers that are generated this way are called hailstones. Write a program that generates some hailstones. Your program should use the function
void hailstones(int n);
to compute and print the sequence generated by n. The output of your program might look as follows:
Hailstones generated by 77:
77 232 116 58 29 88
44 22 11 34 17 52
26 13 40 20 10 5
16 8 4 2 1
Number of hailstones generated : 23
You might find that all the sequences you generate are finite. Whether this is true in general is still an open question. Hint: Use variables of type long instead of int if the program misbehaves.
Explanation / Answer
please rate - thanks
#include <iostream>
using namespace std;
void hailstones(long);
int main()
{
long i;
cout<<"enter starting number: ";
cin>>i;
hailstones(i);
system("pause");
return 0;
}
void hailstones(long n)
{int count=1;
cout<<"Hailstones generated by "<<n<<" "<<n<<" ";
while(n!=1)
{if(n%2==0)
n/=2;
else
n=n*3+1;
count++;
cout<<n<<" ";
if(count%6==0)
cout<<endl;
}
cout<<endl;
}
Related Questions
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.