某君从某年开始每年都举办一次生日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结束