文章目录
- 一、题目
- 🔸题目描述
- 🔸输入输出
- 🔸样例1
- 二、代码参考
- 作者:KJ.JK
🌈 🌈 🌈 🌈 🌈 🌈 🌈 🌈 🌈 🌈 🌈 🌈 🌈
🍂个人博客首页: KJ.JK
💖系列专栏:华为OD机试(Java&Python&C语言)
一、题目
🔸题目描述
某商店规定:三个空汽水瓶可以换一瓶汽水,允许向老板借空汽水瓶(但是必须要归还)。
小张手上有n个空汽水瓶,她想知道自己最多可以喝到多少瓶汽水。
注意:本题存在多组输入。输入的 0 表示输入结束,并不用输出结果。
🔸输入输出
输入
输入文件最多包含 10 组测试数据,每个数据占一行,仅包含一个正整数 n( 1<=n<=100 ),表示小张手上的空汽水瓶数。n=0 表示输入结束,你的程序不应当处理这一行。
输出
对于每组测试数据,输出一行,表示最多可以喝的汽水瓶数。如果一瓶也喝不到,输出0
🔸样例1
输入
3
10
81
0输出
1
5
40说明:
样例 1 解释:用三个空瓶换一瓶汽水,剩一个空瓶无法继续交换
二、代码参考
/*
思路:剩2个空瓶子时,可以先找老板借一瓶汽水,喝掉这瓶满的,喝完以后用3个空瓶子换一瓶满的还给老板。也就是说2个空瓶子即可换一瓶汽水喝,而且喝完之后手里也没有空瓶子。求解时直接把空瓶数除以2,即可得到正解。
*/import java.util.Scanner;
public class Main{public static void main(String[] args){Scanner sc = new Scanner(System.in);while(sc.hasNextInt()){int bottle = sc.nextInt();if(bottle==0){break;}System.out.println(bottle/2);}}
}--------------------------------------------------------import sysdef f(n):if n == 0: return 0if n == 1: return 0if n >=2: return f(n-2) + 1if __name__ == '__main__':data = sys.stdinfor x in data:x = int(x.strip())if x != 0:print(f(x))--------------------------------------------------------------
#include<stdio.h>int main()
{//得到空瓶数量int n;while(scanf("%d",&n) != EOF){int able=0;if(n == 0){break;}while(n>1){if(n>=3){n -= 3;//少3个空瓶able++;//多1个汽水n++;//多1个空瓶}if(n ==2){//借1个空瓶able++;n=0;//还所有空瓶}}printf("%d\n",able); }return 0;}
作者:KJ.JK
文章对你有所帮助的话,欢迎给个赞或者 star,你的支持是对作者最大的鼓励,不足之处可以在评论区多多指正,交流学习