/*
生日蜡烛
某君从某年开始每年都举办一次生日party,并且每次都要吹熄与年龄相同根数的蜡烛。
现在算起来,他一共吹熄了236根蜡烛。
请问,他从多少岁开始过生日party的?
请填写他开始过生日party的年龄数。
注意:你提交的应该是一个整数,不要填写任何多余的内容或说明性文字。
这道题可以用暴力和公式两种方法:公式是高中时常用的等差数列公式,不过上到大二都忘干净了,惭愧呀*/
生日蜡烛
某君从某年开始每年都举办一次生日party,并且每次都要吹熄与年龄相同根数的蜡烛。
现在算起来,他一共吹熄了236根蜡烛。
请问,他从多少岁开始过生日party的?
请填写他开始过生日party的年龄数。
注意:你提交的应该是一个整数,不要填写任何多余的内容或说明性文字。
这道题可以用暴力和公式两种方法:公式是高中时常用的等差数列公式,不过上到大二都忘干净了,惭愧呀*/
公式法:(第一项+最后一项)*项数=这个等差数列的和
<span style="font-size:18px;">
</span>
<span style="font-size:18px;">#include <stdio.h>
int main()
{
for(int i=1;i<=100;i++)
for(int j=i;j<=100;j++)
{
if(((i+j)*(j-i+1))/2==236)
{
printf("%d",i);
break;
}
}
return 0;
}</span>
第二种方法:纯暴力,枚举开始的年份和结束的年份进行判断
<span style="font-size:18px;">
</span>
<span style="font-size:18px;">#include <stdio.h>
int main()
{
int i,j,k,sum;
for(i=1;i<=100;i++)
for(j=i;j<=100;j++)
{
sum=0;
for(k=i;k<=j;k++)
sum=sum+k;
if(sum==236)
{
printf("%d\n",i);
break;
}
}
return 0;
}</span>