您的位置:首页 > 其它

第七届蓝桥杯大赛第二题-生日蜡烛问题

2018-03-20 21:07 239 查看
生日蜡烛

某君从某年开始每年都举办一次生日party,并且每次都要吹熄与年龄相同根数的蜡烛。

现在算起来,他一共吹熄了236根蜡烛。

请问,他从多少岁开始过生日party的?

请填写他开始过生日party的年龄数。

注意:你提交的应该是一个整数,不要填写任何多余的内容或说明性文字。

解题思路:通过题意可知,我们知道要想知道某君多少岁过生日,需要使用假设试数法,假设某君是从1岁开始过生日(即age=1),随着年龄增长,原先蜡烛总数也在减少,只要最后结果是0,那么我们找到了年龄,如果蜡烛最后的结果是负数,那么这不是我们要寻找的答案,就年龄自增继续试数,直到最后结果剩余蜡烛数是零即可

package com.lanqiao.seven.Test;

public class Demo02 {
public static void main(String[] args) {
int j=236;//蜡烛总数
int temp=j;//赋予临时值
int age=1;//初始年龄
test1:while(true)
{
for(int i=age;;i++)
{
temp-=i;
if(temp<0)
{
//如果蜡烛变为负数,那么不符合题意,就需要将初始蜡烛值23赋值给temp,
//同时年龄自增继续试数。
temp=j;
age++;
continue test1;
}else if(temp==0)
{
//如果蜡烛值正好是0,那么我们找到了年龄值需要跳出while循环并输出结果
break test1;
}
}
}
System.out.println(age);
}
}


结果是:26
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: