1 回答

TA貢獻(xiàn)1842條經(jīng)驗(yàn) 獲得超22個(gè)贊
給,已經(jīng)編譯運(yùn)行確認(rèn):
#include <iostream>
#include <time.h>
using namespace std;
enum Ball
{
white,
black
};
int main(int argc, char *argv[])
{
//定義袋中黑白球的數(shù)目
int BlackNum;
int WhiteNum;
//由用戶指定袋中的黑白球數(shù)目
cout << "請(qǐng)輸入袋中白球的數(shù)目" << endl;
cin >> WhiteNum;
cout << "請(qǐng)輸入袋中黑球的數(shù)目" << endl;
cin >> BlackNum;
//初始化隨機(jī)數(shù)種子
srand((unsigned)time(NULL));
int times = 0; //取球的次數(shù)
while ((BlackNum + WhiteNum) > 1)
{
++times;
int FirstBall;
int SecondBall;
//每次取得的第一個(gè)和第二個(gè)球
if (WhiteNum == 0) //袋中已沒有白球,則只能取黑球
{
FirstBall = black;
cout << "第 " << times << "次取出的第一個(gè)球?yàn)楹谏?quot; << endl;
--BlackNum;
}
else if (BlackNum == 0)//袋中已沒有黑球
{
FirstBall = white;
cout << "第 " << times << "次取出的第一個(gè)球?yàn)榘咨?quot; << endl;
--WhiteNum;
}
else //否則隨機(jī)取得一個(gè)球
{
FirstBall = rand() % 2;
if (FirstBall == white)
{
cout << "第 " << times << "次取出的第一個(gè)球?yàn)榘咨?quot; << endl;
--WhiteNum;
}
else
{
cout << "第 " << times << "次取出的第一個(gè)球?yàn)楹谏?quot; << endl;
--BlackNum;
}
}
if (WhiteNum == 0) //袋中已沒有白球,則只能取黑球
{
SecondBall = black;
cout << "第 " << times << "次取出的第一個(gè)球?yàn)楹谏?quot; << endl;
--BlackNum;
}
else if (BlackNum == 0)//袋中已沒有黑球
{
SecondBall = white;
cout << "第 " << times << "次取出的第一個(gè)球?yàn)榘咨?quot; << endl;
--WhiteNum;
}
else
{
SecondBall = rand() % 2;
if (FirstBall == white)
{
cout << "第 " << times << "次取出的第二個(gè)球?yàn)榘咨?quot; << endl;
--WhiteNum;
}
else
{
cout << "第 " << times << "次取出的第二個(gè)球?yàn)楹谏?quot; << endl;
--BlackNum;
}
}
//根據(jù)取出的兩個(gè)球的顏色是否相等來覺得是放黑球進(jìn)去還是白球進(jìn)去
if (FirstBall == SecondBall)
{
++WhiteNum;
}
else
{
++BlackNum;
}
}
if (WhiteNum == 1)
{
cout << "最后一個(gè)球?yàn)榘浊?quot; << endl;
}
else
cout << "最后一個(gè)球?yàn)楹谇?quot; << endl;
system("pause");
}
- 1 回答
- 0 關(guān)注
- 845 瀏覽
添加回答
舉報(bào)