算法原理:
输入一个数字,程序自动运行。
有50%的概率数字翻倍,也有50%的概率数字减去50%。
#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;
int main()
{
long long num = 0; // 初始数值为0
long long count = 0; // 循环次数
srand(time(NULL)); // 设置随机种子
cout << "请依次输入初始数值并按回车键:" << endl;
cin >> num;
while (num >= 1) // 当数值大于等于1时循环执行
{
cout << "第 " << ++count << " 次操作前的数值为:" << num << endl;
if (rand() % 2 == 0) // 50%的概率翻倍
{
num *= 2;
cout << "\t50%的概率翻倍,当前数值为:" << num << endl;
}
else // 50%的概率扣除一半
{
num /= 2;
cout << "\t50%的概率扣除一半,当前数值为:" << num << endl;
}
}
cout << "数值小于1,循环结束,总共循环了 " << count << " 次。" << endl;
return 0;
}