无聊写个小程序╮(╯▽╰)╭

一瓶可乐一块钱,两个可乐瓶可换一瓶可乐,三个可乐瓶盖可换一瓶可乐,你用20块可以喝到几瓶可乐

#include<stdio.h>
#include<stdlib.h>
#include<math.h>

int* bottle_ex(int* bottle) {
    int tmp = 0, tmp1 = 0;
    tmp = bottle[1] % 2;
    tmp1 = bottle[1] / 2;
    bottle[0] += tmp1;
    bottle[1] = tmp;
    bottle[2] += tmp1;
    return bottle;
}
int* cap_ex(int* cap_num) {
    int tmp = 0;
    int tmp1 = 0;
    tmp = cap_num[2] % 3;
    tmp1 = cap_num[2] / 3;
    cap_num[0] += tmp1;
    cap_num[2] = tmp;
    cap_num[1] += tmp1;
    return cap_num;
}

int* cola_ex(int* cola) {
    int tmp = 0;
    if (cola[1] >= 1) {
        cola[1] -= 1;
        cola[0] += 1;
        cola[2] += 1;
    }
    if (cola[2] >= 2) {
        cola[2] -= 2;
        cola[0] += 1;
        cola[1] += 1;
    }
    return cola;
}
int main() {
    int cola[3] = { 20 , 0 , 0 };
    int* colax = cola;
    cola[1] = cola[0];
    cola[2] = cola[0];
    while (cola[1] >1 || cola[2] > 2) {
        colax = bottle_ex(colax);
        colax = cap_ex(colax);
    }
    while ((cola[1] >= 1) || (cola[2] >= 2)) {
        colax = cola_ex(colax);
    }
    printf("The final cola num is %d.\nThe final bottle num is %d.\nThe final cap num is %d.\n", cola[0], cola[1], cola[2]);
    system("pause");
    return 0;

}
//1、在只有一个瓶子的情况下,通过借一个瓶子,可以换得一瓶可乐,加一个瓶盖,即一个瓶子 = 一瓶可乐 + 一个瓶盖
//2. 在只有一个瓶盖的情况下,通过借两个瓶盖,可知还不起,所以当瓶盖数小于等于1时,无法继续
//3. 在有两个瓶盖的情况下,通过借一个瓶盖,可以得到一瓶可乐+一个瓶子,即两个瓶盖 = 一瓶可乐 + 一个瓶子.
//据以上分析进行函数建立

这里写图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值