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

生日蜡烛

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

猜你喜欢

转载自blog.csdn.net/technology_liu/article/details/79631833