第六屆藍橋杯java b組第8題
阿新 • • 發佈:2018-03-28
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題