提示是从一个随机数开始,并在以下条件下重复替换该数字:(1)如果数字为偶数,则将其除以2;(2)如果数字为奇数,则将其乘以3,然后加一。
因此,例如:
如果数字为13,则输出为:40 20 10 5 16 8 4 2 1
(此外,程序必须在达到1的值后停止)
#include <iostream>
using namespace std;
int main()
{
int x;
int lengthcount=0;
cout << "Enter a number: ";
cin >> x;
while(x%2==0)
{
x=x/2;
cout << x << " ";
lengthcount++;
}
while(x%2==1)
{
x=x*3+1;
cout << x << " ";
lengthcount++;
}
if(x==1)
{
return 1;
}
cout << "Length:" << lengthcount << endl;
}
到目前为止,这就是我所拥有的。但是,当我编译并运行代码时,只有第一个值40出现。不是其余组件。我假设它与循环不相互连接有关。我如何获得它,以便一个循环的输出转到另一个循环并返回?
最佳答案
没有连接两个连续的循环,因此您不可能也不应这样做。
取而代之的是一个循环,里面有一个if
/ else
分别处理奇/偶数情况。