close

題目概要:

超商貼著3瓶可樂瓶可以換1瓶可樂,請計算出最多可以喝到多少瓶可樂。空瓶可以跟朋友借,但是需要歸還。

解題方向:

當N(可樂瓶子數量)<=1時,可以直接印出目前的可樂瓶數,因為你再怎麼借,也無法歸還空瓶給朋友。當N>1時,用個變數(ans)紀錄已經喝過的可樂,再重新計算可樂瓶子數量(N),直到可樂瓶子數量(N)=2時,可以跟朋友借一個瓶子,即可換得最後1瓶可樂,喝完的可樂瓶剛好可以還給朋友。當可樂瓶子(N)=1時,結束迴圈,印出答案。

程式碼:

//Java
import java.util.Scanner;
class uva11150{
public static void main(String args[]){
Scanner sc=new Scanner(System.in);
while(sc.hasNext()){
int N=sc.nextInt();
int ans=0;
if(N<=1){
//當N<=1時,直接印出目前有幾罐可樂。因為他再怎麼跟朋友借瓶子,也無法歸還空瓶。
System.out.println(N);
}else{
//ans=最多可以喝多少可樂。初始化為一開始所擁有的可樂數量。
ans=N;
//當瓶子剩下1根時,結束迴圈。
while(N!=1){
if(N==2) N=N+1;//當N==2時再跟朋友借一個瓶子。
ans=ans+N/3;//喝掉的可樂數量
N=N%3+N/3;//目前的瓶子=原本剩下的瓶子+兌換後的瓶子
}
//結果輸出
System.out.println(ans);
}
}
}
}
view raw uva11150.java hosted with ❤ by GitHub

arrow
arrow
    文章標籤
    Java
    全站熱搜
    創作者介紹
    創作者 a7069810 的頭像
    a7069810

    紀錄自己的程式人生

    a7069810 發表在 痞客邦 留言(0) 人氣()