//*******************************************
//程序名:GuessNumber(from1to100)
//功 能:玩家心中想1到100中的一个数,
// 给出7张卡片,让玩家说出哪几张
// 卡片上有这个数,然后计算机便能
// 判断出是哪个数
//编制人:刘聪
//时 间:2017年5月27日
//*******************************************
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
int n, Binary, bit, bit_weight, counter, judge, Number;
int card_number, take_remainder, take_quotient, i, j, k;
int DecimalToBinary(int n);
n = 0;
Binary = 0;
bit = 0;
bit_weight = 1;
counter = 0;
judge = 0;
Number = 0;
card_number = 0;
take_remainder = 1;
take_quotient = 1;
i = 0;
j = 0;
k = 0;
cout<<"猜数游戏开始!请在心中默想一个1到100之间的整数,"<<endl
<<"请看以下0#到6#,共7张卡片,是否有您所想的数字。"<<endl
<<"若有,请说“1”;若无,请说“0”。"<<endl;
for(card_number = 0; card_number < 7; card_number++)
{
cout<<endl<<"卡片 "<<card_number<<"#:"<<endl;
for(i = 0, take_remainder = 1; i <= card_number ; i++)
take_remainder = take_remainder * 10;
for(j = 0, take_quotient = 1; j < card_number ; j++)
take_quotient = take_quotient * 10;
for(n = 1; n <= 100; n++)
{
Binary = DecimalToBinary(n);
bit = Binary % take_remainder / take_quotient;
if(bit == 1)
{
cout<<n<<'\t';
counter++;
}
if(counter == 5)
{
cout<<endl;
counter = 0;
}
if((n == 100) && (counter != 0)) cout<<endl;
if(n == 100) counter = 0;
}
cout<<"这张表有你想的数字吗?:";
cin>>judge;
for(k = 0, bit_weight = 1; k < card_number ; k++)
bit_weight = bit_weight * 2;
if(judge == 1)
{
Number = bit_weight * 1 + Number;
cout<<endl;
}
else
{
if(judge == 0)
{
Number = bit_weight * 0 + Number;
cout<<endl;
}
else cout<<"输入错误。";
}
}
cout<<"您所猜的数字是:"<<Number<<endl;
return 0;
}
int DecimalToBinary(int n)
{
int counter, quotient, remainder, Binary, i;
counter = 0;
quotient = 0;
remainder = 0;
Binary = 0;
i = 0;
while((quotient = n / 2 ) > 0)
{
remainder = n % 2;
n = quotient;
counter++;
if(remainder == 1)
{
for(i = counter; i > 1; i--)
remainder = remainder * 10;
Binary = remainder + Binary;
}
}
remainder = 1;
counter++;
for(i = counter; i > 1; i--)
remainder = remainder * 10;
Binary = remainder + Binary;
return Binary;
}
MOOC清华《程序设计基础》第2章:猜数游戏(from 1 to 100)
最新推荐文章于 2020-02-16 20:18:08 发布