1. 程式人生 > >第六屆藍橋杯java b組第8題

第六屆藍橋杯java b組第8題

CP stat exti 要求 得到 嚴格 else scan 內容

樂羊羊飲料廠正在舉辦一次促銷優惠活動。樂羊羊C型飲料,憑3個瓶蓋可以再換一瓶C型飲料,並且可以一直循環下去,但不允許賒賬。

請你計算一下,如果小明不浪費瓶蓋,盡量地參加活動,那麽,對於他初始買入的n瓶飲料,最後他一共能得到多少瓶飲料。

輸入

一個整數n,表示開始購買的飲料數量(0 < n < 10000)

輸出

一個整數,表示實際得到的飲料數

例如:

用戶輸入

100

程序輸出

149

用戶輸入

101

程序輸出

151

資源約定

峰值內存消耗(含虛擬機) < 256M
CPU消耗 < 1000ms

請嚴格按要求輸出,不要畫蛇添足地打印類似:“請您輸入…” 的多余內容。

對於這個題目 我首先想到的是遞歸 變化的量是瓶蓋數目和這一輪沒有使用到的瓶蓋數目

這樣得出的結果是喝了多少瓶飲料

代碼如下

import java.util.Scanner;

public class Test8A {
    //用於存儲初始的瓶蓋數目
    private static int count=0;
    public static void main(String[] args) {
        Scanner scanner =new Scanner(System.in);
        count=scanner.nextInt();
        long start =System.currentTimeMillis();
        
int temp=count;//用於存儲次的瓶蓋數目 int k=0;//用於存儲這一輪瓶蓋多余的數目 fun(temp,k); System.out.println(count); long end = System.currentTimeMillis(); System.out.println(end-start); } private static void fun(int temp, int k) { int n=k+temp;//這一輪的數目瓶蓋 int number=0;//
這一輪能夠換多少個瓶蓋 if(n>=3){ k=n%3;//這一輪多余的瓶蓋數目 number=n/3;//這一輪能夠兌換的瓶蓋數目 count=number+count;//新增多少個 fun(number,k); }else{ return; } } }

第六屆藍橋杯java b組第8題