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;
                }
            }
            
        }
    }
}