第七届蓝桥杯大赛第二题-生日蜡烛问题
2018-03-20 21:07
239 查看
生日蜡烛
某君从某年开始每年都举办一次生日party,并且每次都要吹熄与年龄相同根数的蜡烛。
现在算起来,他一共吹熄了236根蜡烛。
请问,他从多少岁开始过生日party的?
请填写他开始过生日party的年龄数。
注意:你提交的应该是一个整数,不要填写任何多余的内容或说明性文字。
解题思路:通过题意可知,我们知道要想知道某君多少岁过生日,需要使用假设试数法,假设某君是从1岁开始过生日(即age=1),随着年龄增长,原先蜡烛总数也在减少,只要最后结果是0,那么我们找到了年龄,如果蜡烛最后的结果是负数,那么这不是我们要寻找的答案,就年龄自增继续试数,直到最后结果剩余蜡烛数是零即可
结果是:26
某君从某年开始每年都举办一次生日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
相关文章推荐
- 第七届蓝桥杯大赛个人赛省赛(软件类)java语言B组第二题:生日蜡烛
- 2016第七届蓝桥杯C/C++ B组省赛第二题:生日蜡烛
- 第七届蓝桥杯javaB组真题解析-生日蜡烛(第二题)
- 第七届蓝桥杯B组 第二题 生日蜡烛
- 第七届蓝桥杯大赛个人赛省赛(软件组)java语言B组---2.生日蜡烛
- 2016第七届蓝桥杯C++B组第二题:生日蜡烛--(前缀和)
- 第七届蓝桥杯大赛——煤球问题
- 第七届蓝桥杯大赛个人赛决赛(软件类C语言B组)第二题:凑平方数(深搜)
- 第七届蓝桥杯—生日蜡烛
- 第七届蓝桥杯大赛个人赛省赛(软件类)A组第二题 生日蜡烛
- 第七届蓝桥杯JavaA组第二题生日蜡烛
- 蓝桥杯第七届-生日蜡烛
- 生日蜡烛-第七届蓝桥杯c/c++B组
- 第七届蓝桥杯---生日蜡烛
- 第七届蓝桥杯生日蜡烛
- 关于调和级数问题(14届蓝桥杯b组第二题)
- 第七届蓝桥杯全国软件和信息技术专业人才大赛竞赛注意事项
- 第七届蓝桥杯总决赛 整数的划分问题
- 2016 蓝桥杯 生日蜡烛
- 蓝桥杯_生日蜡烛