买酒 酒瓶酒盖换酒的程序实现

买酒 酒瓶酒盖换酒的程序实现_第1张图片 题目如图片,程序实现如下:

分两种情况,可以借酒瓶与不借酒瓶,通过宏定义来区分。

代码如下:

/ 这是一个简单的C++程序:simple.cpp
#include   //包含标准库中的输入输出流头文件
#include
using namespace std;


#define KJ  1    //可以借瓶子或瓶盖
void   main(void)
{


int Money, PG, KP;
int PG_J = 0;
int KP_J = 0;
int KP_LAST = 0; 
int PG_LAST = 0;
int Money_remain;
cout << "请输入购入钱数:";
cin >> Money;



int N = Money / 2;
PG = N;
KP = N;
if (N >= 1)
{
for (int i = 0; i < 100; i++)
{
if (PG >= 4)
{
N = N + PG / 4;  //喝过的总数加上 瓶盖兑换的
KP = KP + PG / 4; //目前的酒瓶个数


PG = PG / 4 + PG % 4;  //目前的瓶盖个数
}
if (KP >= 2)
{
N = N + KP / 2;   //瓶盖兑换后的总数加上酒瓶兑换的个数
PG = PG + KP / 2;  //目前的瓶盖个数
KP = KP / 2 + KP % 2;


}
if (PG >= 4 || KP >= 2)
continue;
else
break;
}
//任何情况下,借别人一个酒瓶都可以换一瓶酒,再把换得的酒瓶还回去
if (KJ)
{
KP_J = 2 - KP;
if (KP_J == 1)
{
N++;
PG = PG + 1;
KP_LAST = 1;
KP = 0;
}

//瓶盖比较特殊,只有三个的情况或2个的情况下可以换
if (PG == 4)
{
N++;
KP_LAST = KP_LAST + 1;
PG = 1;
if (KP_LAST == 2)
{
N++;


KP = 0;
PG++;


}
}
else if (PG == 3)
{
N++;
PG_J = 1;
PG = 0;
KP = 0;
}

}

cout << "总共可以买" << N << "瓶啤酒" << endl;
cout << "剩余空瓶个数为: " << KP << endl;
cout << "剩余瓶盖个数为: " << PG << endl;
if (KJ)
{
cout << "借空瓶个数为: " << KP_J << endl;
cout << "借瓶盖个数为: " << PG_J << endl;
}


}
else
{
cout << "钱不够买一瓶酒!!!" << endl;


}


system("pause");
}

可借酒瓶的结果如下:

买酒 酒瓶酒盖换酒的程序实现_第2张图片

 

不可以借酒瓶的结果如下:

买酒 酒瓶酒盖换酒的程序实现_第3张图片

 

 

你可能感兴趣的:(买酒 酒瓶酒盖换酒的程序实现)