日期:2014-05-20 浏览次数:20684 次
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 } }