日期:2014-05-20 浏览次数:20908 次
public class NN
{
    public static void main(String arsg[]){
        int i=1,sum=0;
        //boolean a=true;
        for(i=1; ; i++){
            sum += i;            
            if(sum < 8888 && sum + i + 1 > 8888)
                break;
            }
        System.out.println(i);
        }
}
------解决方案--------------------
//(1+n)*n/2<=8888
//n^2 + n <=17776
//132是正确的
int sum = 8888*2;
        for (int i = 0; i <8888; i++) {
            if (i*(1+i) > sum) {
                System.out.println(i-1);
                System.out.println(8888-((i-1)*i/2));
                break;
            }
        }
------解决方案--------------------
嘿嘿,我的结果和他们都不一样的。我算出来时133哦。不解释看代码。
public class test {
    public static void main(String arsg[]) {
        int n=0,sum=0;
        for (int i = 0;true; i++) {
            for(int j=0;j<=i;j++){
                sum+=j;
            }
            if(sum>=8888){
                n=i;
                System.out.println("n=" + n);//结果为133.
                sum=0;
                break;
            }
            sum=0;
        }
        
        //验证!!!
        for(int i=0;i<=n;i++){
            sum+=i;
        }
        System.out.println(sum-n);//输出为8778,意思就是说,如果知道n-1的时候,即n=132的时候,1加到n不>=8888.
    }
}
------解决方案--------------------
int sum = 0;
int n = 0;
while ((sum += ++n) < (8888 - n));
System.out.println("n = " + n);
System.out.println("sum = " + sum);
------解决方案--------------------
public class User {
    public static void main(String arsg[]) {
        int i = 1, sum = 0, n = 0;// 把你的t去得了,t是多余的
        boolean a = true;
        for (i = 1; a; i++) {
            sum = sum + i;
            if (sum >= 8888)// 注意if的位置,if一定要在n++前面
                break;
            n++;
        }
        System.out.println("n=" + n);// 132
    }
}