2016--生日蜡烛

生日蜡烛

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

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

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

请填写他开始过生日party的年龄数。
注意:你提交的应该是一个整数,不要填写任何多余的内容或说明性文字。


*暴力循环列举

public class 生日蜡烛
{
    public static void main(String[] args){
    	int n=0;
    	int i;
        flag://设置标记,方便之后跳出双层循环
    	for (i =1; i <100; i++) {
    		n=0;
			for(int j=i;j<100;j++) {
				n=n+j;
				if(n==236) {
					break flag;//跳到flag标记处,即双层循环外面
				}
				if(n>236) {
					break;
				}
			}
			
		}
    	System.out.println(i);
    }
}

****此处用了跳出双层循环的方法,总结如下:

①使用类似C语言中的GOTO。直接跳出两个for循环,到flag.

又比如:

public static void main(String[] args) {
    OK://跳出的标记
    for (int i = 0; i < 5; i++) {
        System.out.println(i+"这是I");
        for (int j = 0; j < 5; j++) {
            System.out.println(j+"这是J");
            if(j==3){
                //执行条件为TURE 则跳到标记处结束循环
                break OK;
            }
            for (int k = 0; k < 5; k++) {
                System.out.println(k+"输出K");


            }
        }

    }
}

②增加标记(使用判断的方法加条件)

例如:

     boolean b = true;
        for(int i = 0; i < 10 && b; i++){
            for(int j = 0; j < 10 && b;j++){
                if(j > 3){
                    System.out.println("i="+i);
                    System.out.println("j="+j);
                    b = false;
                }
            }
        }

   或者:

 int array[][] = { { 5, 7, 6, 4, 9 }, { 1, 2, 8, 3, 2 } };  
        boolean flag = false;  
        for (int i = 0; i < array.length && !flag; i++) {  //当flag为true时跳出循环  
            for (int j = 0; j < array[i].length; j++) {  
                if (array[i][j] == 8) {  
                    flag = true;  
                    break;  
                }  
            }  
        }

③当然,如果函数不需要返回值,比如这个题,就可以用return,只要在return之前把值输出到屏幕就可以。

public class 生日蜡烛
{
    public static void main(String[] args){
        int n=0;
        int i;
        for (i =1; i <100; i++) {
            n=0;
            for(int j=i;j<100;j++) {
                n=n+j;
                if(n==236) {
                    System.out.println(i);
                    return;
                }
                if(n>236) {
                    break;
                }
            }
            
        }
    }
}

       

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值