C语言二十四弹--喝汽水问题

简介: C语言二十四弹--喝汽水问题

C语言解决喝汽水问题

题目:喝汽水,1瓶汽水1元,2个空瓶可以换一瓶汽水,给20元,可以喝多少汽水?

方法一、逐瓶购买法

思路:一瓶瓶的买 当空瓶有两个时,汽水数加1即可。

#include <stdio.h>
int main()
{
  int bottle = 0;//瓶子
  int empty = 0;//空瓶子
  int money = 20;
  while (money > 0)//没钱就无法购买了~
  {
    money--;//每进入一次循环 钱会减少一块 瓶子数会增多一个
    bottle++;
    if (bottle % 2 == 0)//有偶数空瓶就会获得一个瓶子
    {
      bottle++;
    }
  }
  printf("%d",bottle);
  return 0;
}

方法二、一次性购买兑换法

思路:一次性把钱花光买汽水,然后会有一半的空瓶,再兑换汽水,然后又会有空瓶,再次兑换汽水。

#include <stdio.h>
int main()
{
  int money = 20;
  int bottle = money;// 一次性购买完 汽水初始化就有20
  int empty = 20;//喝完空瓶也会有20
  while (empty > 1)//只要还有1个以上的空瓶子 就可以继续兑换汽水
  {
    bottle += empty / 2;//汽水数在原来基础上加上空瓶子的一半
    empty = empty / 2 + empty % 2;//喝完之后又会剩余空瓶,求到剩余空瓶数。
  }
  printf("%d",bottle);
  return 0;
}

方法三、公式法

思路:根据要求可以发现满足2 * money - 1,所以直接代入公式直接求即可

#include <stdio.h>
int main()
{
  int money = 20;
  int bottle = 0;
  bottle = 2 * money - 1;
  printf("%d",bottle);
  return 0;
}
相关文章
|
2月前
|
C语言
c语言经典例题讲解(输出菱形,喝汽水问题)
c语言经典例题讲解(输出菱形,喝汽水问题)
64 0
|
20天前
|
C语言
【C语言刷题系列】喝汽水问题
【C语言刷题系列】喝汽水问题
|
11月前
|
C语言
用C语言解决实际问题之买汽水、猜凶手(名次)
用C语言解决实际问题之买汽水、猜凶手(名次)
67 0
|
8月前
|
C语言
【C语言刷题】喝汽水问题、上三角矩阵判定以及矩阵相等判定
【C语言刷题】喝汽水问题、上三角矩阵判定以及矩阵相等判定
59 0
【C语言刷题】喝汽水问题、上三角矩阵判定以及矩阵相等判定
|
7月前
|
C语言
C语言二十三弹---求第N项斐波那契数列的值
C语言二十三弹---求第N项斐波那契数列的值
|
7月前
|
C语言
C语言二十二弹--有序数组合并
C语言二十二弹--有序数组合并
|
7月前
|
C语言
C语言二十一弹 --打印空心正方形
C语言二十一弹 --打印空心正方形
|
12月前
|
C语言
C语言:喝汽水问题
总体思路: (一). 定义相关变量: int money = 0; -- 一元一瓶,所以也等于空瓶数 int total = 0; -- 喝的总瓶数
113 0
|
C语言
C语言;喝汽水问题
C语言;喝汽水问题
81 0
C语言;喝汽水问题
|
2天前
|
C语言
C语言5 字符输出函数和格式输出函数
C语言5 字符输出函数和格式输出函数
6 1