第七屆藍橋杯javaB組真題解析-生日蠟燭(第二題)


題目

/*
生日蠟燭

某君從某年開始每年都舉辦一次生日party,並且每次都要吹熄與年齡相同根數的蠟燭。

現在算起來,他一共吹熄了236根蠟燭。

請問,他從多少歲開始過生日party的?

請填寫他開始過生日party的年齡數。
注意:你提交的應該是一個整數,不要填寫任何多余的內容或說明性文字。


*/

 

答案

26

 

代碼

 1 public class Main {
 2     public static void main(String[] args) {
 3         //從1歲開始試,到100歲截至
 4         for(int i=1;i<100;i++){
 5             boolean is=false; //判斷是否得到結果,是 跳出,否 繼續循環
 6             int s=i,n=i; //s 從第i年開始計算生日共吹熄的蠟燭數,n每一年要吹熄的蠟燭數
 7             while(true){
 8                 if(s==236){//總數等於236 則說明是從第i年開始計算的
 9                     System.out.println(i+"-"+n);//結果輸出 從第i年開始到現在n年
10                     is = true;
11                     break;
12                 }
13                 if(s>236)   //如果總數大於236 則說明不是從第i年開始計算的
14                     break;
15                 //否則繼續疊加     這個代碼放在if前面也可以 因為由題目可以看出肯定不會是只過了一年生日
16                 n++; //下一年要吹熄的蠟燭數
17                 s +=n;//繼續累計吹熄的蠟燭數
18             }
19             if(is)
20                 break;
21         }
22     }
23 }

 

 

解析

可以盡量用代碼思想來考慮,循環試出來 ,而不用考慮到數學問題上去,這樣會提升代碼的邏輯難度,容易出錯

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM