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;
}
相关文章
|
5月前
|
C语言
C语言二十三弹---求第N项斐波那契数列的值
C语言二十三弹---求第N项斐波那契数列的值
|
5月前
|
C语言
C语言二十二弹--有序数组合并
C语言二十二弹--有序数组合并
|
5月前
|
C语言
C语言二十一弹 --打印空心正方形
C语言二十一弹 --打印空心正方形
|
2天前
|
C语言
C语言:内存函数(memcpy memmove memset memcmp使用)
C语言:内存函数(memcpy memmove memset memcmp使用)
|
17小时前
|
C语言
C语言——函数递归
C语言——函数递归
4 0
|
17小时前
|
C语言
C语言—函数(大化小方式的心脏)
C语言—函数(大化小方式的心脏)
2 0
|
2天前
|
存储 编译器 C语言
C语言:字符函数 & 字符串函数 & 内存函数
C语言:字符函数 & 字符串函数 & 内存函数
15 2
|
2天前
|
缓存 安全 编译器
【C 言专栏】C 语言函数的高效编程技巧
【5月更文挑战第1天】本文探讨了C语言中函数的高效编程技巧,包括函数的定义与作用(如代码复用和提高可读性)、设计原则(单一职责和接口简洁)、参数传递方式(值传递、指针传递和引用传递)、返回值管理、调用约定、嵌套与递归调用,以及函数优化技巧和常见错误避免。掌握这些技巧能提升C语言代码的质量和效率。
【C 言专栏】C 语言函数的高效编程技巧
|
2天前
|
C语言
pta浙大版《C语言程序设计(第3版)》 习题6-4 使用函数输出指定范围内的Fibonacci数 (20分)
pta浙大版《C语言程序设计(第3版)》 习题6-4 使用函数输出指定范围内的Fibonacci数 (20分)
|
2天前
|
C语言
pta 浙大版《C语言程序设计(第3版)》题目集 习题6-6 使用函数输出一个整数的逆序数 (20分)
pta 浙大版《C语言程序设计(第3版)》题目集 习题6-6 使用函数输出一个整数的逆序数 (20分)