饮料换购


蓝桥杯练习题中饮料换购-java

题目

乐羊羊饮料厂正在举办一次促销优惠活动。乐羊羊 C 型饮料,凭 3 个瓶盖可以再换一瓶 C 型饮料,并且可以一直循环下去(但不允许暂借或赊账)。

请你计算一下,如果小明不浪费瓶盖,尽量地参加活动,那么,对于他初始买入的 n 瓶饮料,最后他一共能喝到多少瓶饮料。

输入描述

输入一个整数 n(0<n<1000)n(0<n<1000),表示开始购买的饮料数量。

输出描述

输出一个整数,表示实际得到的饮料数

输入输出样例

示例

输入

100

输出

149

运行限制

  • 最大运行时间:1s
  • 最大运行内存: 256M

题解

方法一:

思路

​ 第一次n为获得饮料数的起始值,然后每三瓶可兑换一瓶,所以第二次兑换的数目为 n/3,剩余不够兑换的个数放在第三次兑换,所以第三次兑换前的总数为n/3+ n%3,以此类推、、、、可得到最终获得的饮料个数

代码实现

import java.util.Scanner;
//1:无需package
//2: 类名必须Main, 不可修改

public class Main {
 public static void main(String[] args) {
     Scanner scan = new Scanner(System.in);
     //在此输入您的代码...
     int n = scan.nextInt();
     int sum = n;   // 总共兑换的饮料数
     int yushu = 0; // 每次不够兑换的数目
     int huangou = 0; //每次换购的数目
     while(n >= 3){
       yushu = n % 3;
       huangou = n / 3;
       n = huangou + yushu;
       // 因为这里每次剩余的饮料不够兑换,所以放在下一次中计算,并不需要加载总数里
       sum += huangou;
     }
     System.out.println(sum);
     scan.close();
 }
}

复杂度分析

提交详情

image-20210304212043735

方法二:

思路

代码实现

复杂度分析

提交详情


文章作者: Loole
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Loole !
评论
  目录