某君從某年開始每年都舉辦一次生日party,并且每次都要吹熄與年齡相同根數的蠟燭。
現在算起來,他一共吹熄了236根蠟燭。
請問,他從多少歲開始過生日party的?
請填寫他開始過生日party的年齡數。
注意:你提交的應該是一個整數,不要填寫任何多余的內容或說明性文字。
代碼如下:
#include <iostream>
#include<cstdio>
using namespace std;int main()
{int i,j=1,sum=0;for(i=1;i<=50;i++) //如果從50歲開始點蠟燭話,50+51+52+53+54>236,所以肯定是在50歲之前的某個年齡開始點蠟燭的{sum=0; //sum負責計數,算蠟燭的和j=i; //從第i歲開始的,i從1~50歲while(sum<236) //蠟燭和小于236,如果等于236時結束循環,或者大于236時結束循環{sum+=j; //每次都是等差數列,公差為1j++;}if(sum==236) //當蠟燭和為236時{printf("%d\n",i);//輸出幾歲開始吹蠟燭的printf("%d",j-1); //輸出現在是多少歲,因為while循環里面j會多加一次,所以這里的實際年齡應該是j-1歲}}return 0;
}
思路分析:
1+2+3+4+5+…==236
2+3+4+5+6+…==236
3+4+5+6+7+…==236
… … …
i+(i+1)+(i+2)+(i+3)+…==236,i從1開始,一直到50結束