喝汽水问题

简介: 喝汽水问题

喝汽水问题


喝汽水,1瓶汽水1元,2个空瓶可以换一瓶汽水,给20元,可以喝多少汽水。


钱数==买的汽水个数==空瓶个数
换的汽水个数==空瓶数/2+空瓶数%2(上一次剩余的空瓶数)
总汽水数==买的+换的


d72d86d370a7b2a181a9cc3ea8bef3df_c1121117461747e28fbe2809e976d4b4.png


代码实现如下


#include<stdio.h>
int main()
{
  int money = 0;
  scanf("%d", &money);
  //第一次喝的汽水个数==钱数==空瓶数
  int total = money;
  int empty = money;
  //置换(用空瓶换汽水)
  while (empty > 1)
  {
  //总汽水个数== 第一次喝的汽水数+置换的汽水个数
  //两个空瓶换一个汽水
  total += empty / 2;
  //总空瓶数=置换之后的汽水个数+置换时剩余的空瓶数
  empty = empty / 2 + empty % 2;
  }
  printf("%d\n", total);
  return 0;
}


2fec8dd7bc4f6ec1ccbd518ca6e21f6d_44951c8356434122a0956f15902f59ff.png


如果使用数学公式的话,不难发现


total = 2*money - 1


代码就可以简化


#include<stdio.h>
int main()
{
  int money = 0;
  scanf("%d", &money);
  int total = 2 * money - 1;
  printf("%d\n", total);
  return 0;
}

91ad7189db5197325a2297ce67970f47_7d6173ce290942b39233f032a9a58b5b.png


目录
相关文章
|
1月前
如果小张手上有n个空汽水瓶,最多可以换多少瓶汽水喝(详解)
如果小张手上有n个空汽水瓶,最多可以换多少瓶汽水喝(详解)
20 1
如果小张手上有n个空汽水瓶,最多可以换多少瓶汽水喝(详解)
|
1月前
【多思路解决喝汽水问题】1瓶汽水1元,2个空瓶可以换一瓶汽水,给20元,可以喝多少汽水
【多思路解决喝汽水问题】1瓶汽水1元,2个空瓶可以换一瓶汽水,给20元,可以喝多少汽水
81 0
|
7月前
|
5G 知识图谱
根据体重计算可以喝汽水的罐数
根据体重计算可以喝汽水的罐数
68 1
|
算法 C++ Python
每日算法系列【LeetCode 875】爱吃香蕉的珂珂
每日算法系列【LeetCode 875】爱吃香蕉的珂珂
PTA 1092 最好吃的月饼
月饼是久负盛名的中国传统糕点之一,自唐朝以来,已经发展出几百品种。
85 0
|
C语言
【C】喝汽水,找单身狗问题
【C】喝汽水,找单身狗问题
83 0
|
存储
【LeetCode】这儿童节的糖不好吃啊
【LeetCode】这儿童节的糖不好吃啊
124 0
【LeetCode】这儿童节的糖不好吃啊
|
Windows
我要喝汽水
我要喝汽水
99 0
我要喝汽水
|
算法 前端开发
爱吃香蕉的珂珂
🎈每天进行一道算法题目练习,今天的题目是“爱吃香蕉的珂珂”。
108 0