藍橋杯ACM簡單題-生日蠟燭 2020-12-22
阿新 • • 發佈:2020-12-23
藍橋杯ACM簡單題-生日蠟燭
1.問題描述
某人從某年開始每年都舉辦一次生日派對,並且每次都要吹熄與年齡相同根數的蠟燭。現在算起來,他一共吹熄了236根蠟燭。請問,他從多少歲開始過生日派對的?
2.演算法分析
顯然為一個遞推問題,故使用迴圈,我們可以從1歲試起進行求解,注意最後限制範圍,否則可能為無限迴圈。
3.輸出結果
開始: 26 結束: 33
4.程式碼
#include<stdio.h>
int main()
{
int start, end; //年齡的下限和上限
for (start = 1; start < 236; start++) //年齡從一歲開始,並設定上限
{
for (end = start; end < 236; end++) //為下一步遞推做準備
{
int sum = 0;
for(int i = start; i <= end; i++) //年齡下、上限的和
sum += i;
if( sum == 236)
{
printf("開始: %d 結束: %d\n" , start, end);
}
}
}
return 0;
}