CPE UVA11150 – Cola [JAVA]

最後更新於 2021 年 8 月 24 日

畢業門檻需要考過CPE,先從一星題開始練吧,今天挑了幾題來解。

PS.真心覺得CPE難在看懂原文題目,而不是把它寫出來…

原文題目https://onlinejudge.org/index.php?option=onlinejudge&Itemid=8&page=show_problem&problem=2091

20200520145029 CPE UVA11150 - Cola [JAVA]

題目概要:每蒐集三個空瓶就會送一瓶可樂,最後計算總共能喝到幾瓶可樂

方法1

  • 喝完8瓶可樂會得到8個空瓶,3空瓶換一瓶可樂,因此會獲得2瓶新可樂,且剩下2個空瓶。(此輪喝了8瓶)
  • 喝光2瓶新可樂,獲得2瓶空瓶;再加上上一輪剩餘的2空瓶 = 4空瓶。(此輪喝了2瓶)
  • 最後,4空瓶又可以兌換1瓶可樂,外加上一輪剩餘的1空瓶 = 2空瓶(此輪喝了1瓶)

此輪總共喝了 8 + 2 + 1 = 11瓶可樂。

方法2

  • 因為是3空瓶一組,因此本來8瓶先借1空瓶,於是可以獲得3瓶新可樂。(此輪喝了8瓶)
  • 3瓶新可樂喝完後獲得1瓶新可樂(此輪喝了3瓶)
  • 喝完剩下的一瓶可樂(此輪喝了1瓶)

此輪總共喝了 8 + 3 + 1 = 12瓶可樂。

條件限制

輸入變數定義為整數N,1≦N≦200。

Input
8

Output
12

程式碼

import java.util.*;
public class main{
    public static void main(String[] args) {
            Scanner sc=new Scanner(System.in);
        	while(sc.hasNext()){
        	int n = sc.nextInt();
                int sum = n;
			 while(n>=3){
			 sum += n/3;
			 n = n/3 + n%3 ;
			}
			 if(n==2){
			  sum++;
			}
			System.out.println(sum);
			}
    }
};
  • n 為起始瓶數
  • sum 為總計喝了多少瓶

當起始瓶數大於或等於3時,sum 紀錄當前剩餘的瓶數除以3空瓶可以兌換幾個新可樂。

設 n = 8;sum = 8

sum = (8) + 2 = 10
n = 2 + 2 = 4

於是再進行一輪

sum = (10) + 1 = 11
n = 1 + 1 = 2

這下 n = 2,沒法再換新可樂,因此sum++

sum = 11 +1 = 12

最後輸出sum = 12。

0 0 評分數
Article Rating
訂閱
通知
guest

0 Comments
在線反饋
查看所有評論