下午群里的小伙伴提醒下才想起来楼上的换饮料问题。写了个小程序,计算了结果为:113;
C源码:(因为有很多没接触过的吧友,所以代码写的很繁琐,为了方便没基础的吧友阅读。精简下来代码会很短的。)
#include<stdio.h>
int main(){
int money =20;//当前可购买瓶数
int sum = 0;//总瓶数
int num1 = 0;//空瓶数
int num2 = 0;//瓶盖数
bool flag = true;//是否结束
sum = money;
num1 = money;
num2 = money;//默认第一次购买瓶数20,空瓶20,瓶盖20;
money= 0;
int temp1 = 0;//记录兑换后剩余空瓶
int temp2 = 0;//记录兑换后剩余瓶盖
while(flag){
printf("当前空瓶:%d,当前瓶盖:%d,当前总瓶数:%d\n",num1+temp1,num2+temp2,sum);
num1 = num1+temp1;//空瓶加上上一轮剩余空瓶
money=num1/2;
temp1=num1%2;
num2=num2+temp2;
money = money +(num2/3);
temp2=num2%3;
printf("本轮使用兑换瓶数:%d,剩余空瓶:%d,剩余瓶盖:%d\n",money,temp1,temp2);
num1=money;
num2=money;
sum =sum +money;
if(money==0){
printf("兑换结束!\n");
flag = false;
} else{
printf("\n下一轮\n");
}
}
printf("总瓶数:%d",sum);
return 0;
}
C源码:(因为有很多没接触过的吧友,所以代码写的很繁琐,为了方便没基础的吧友阅读。精简下来代码会很短的。)
#include<stdio.h>
int main(){
int money =20;//当前可购买瓶数
int sum = 0;//总瓶数
int num1 = 0;//空瓶数
int num2 = 0;//瓶盖数
bool flag = true;//是否结束
sum = money;
num1 = money;
num2 = money;//默认第一次购买瓶数20,空瓶20,瓶盖20;
money= 0;
int temp1 = 0;//记录兑换后剩余空瓶
int temp2 = 0;//记录兑换后剩余瓶盖
while(flag){
printf("当前空瓶:%d,当前瓶盖:%d,当前总瓶数:%d\n",num1+temp1,num2+temp2,sum);
num1 = num1+temp1;//空瓶加上上一轮剩余空瓶
money=num1/2;
temp1=num1%2;
num2=num2+temp2;
money = money +(num2/3);
temp2=num2%3;
printf("本轮使用兑换瓶数:%d,剩余空瓶:%d,剩余瓶盖:%d\n",money,temp1,temp2);
num1=money;
num2=money;
sum =sum +money;
if(money==0){
printf("兑换结束!\n");
flag = false;
} else{
printf("\n下一轮\n");
}
}
printf("总瓶数:%d",sum);
return 0;
}







