编写应用程序,输出满足1+2+3+…+n<8888的最大正整数n。答:
class Maxn
{ public static void main(String args[])
{
int k=1,sum=0;
while((sum+=k)<8888)
k++;
k--;
System.out.println("最大能取到:"+k);
}
}
class Maxn
{ public static void main(String args[])
{
int k=1,sum=0;
while((sum+=k)<8888)
k++;
k--;
System.out.println("最大能取到:"+k);
}
}
int result = 0;
for (int k = 0, sum = 0; sum < 8888; k++, sum += k) {
result = k;
}
System.out.println("最大能取到:" + result);
}}
int sum=0;
while(sum<8888){
System.out.println(k);
sum+=k;
if(sum>8888){
continue;
}
k++;
}
System.out.println(sum);
{ public static void main(String args[])
{
int k=1,sum=0;//声明相加的起始数i和相加的和sum
while((sum+=k)<8888)//进行循环求sum,sum要小于8888
k++;
k--;//sum>=8888时跳出循环,这时的k是不满足条件的k,所以循环才跳出来,而这时的k的上一个k才满足条件,所以要k--
System.out.println("最大能取到:"+k);
}
}
int sum = 0;
for(int i=0;;i++){
sum += i;
if(sum > 8888){
System.out.println("最大值: "+ (i-1)); // 注意是 i-1
break;
}
}
{ public static void main(String args[])
{
int k=1,sum=0;
while((sum+=k)<8888)
k++;
------------------------------------------------------------------------------------------
k--;
System.out.println("最大能取到:"+k);
}
}
在这里给你来个分界线啊,while循环语句并没有{ }标识,所以while语句块中所执行的语句只有一条,k++,
整个程序设计的思路是:让k从1开始取值,取2,3,4,5,6,依次赠1,在增1的同时再将这些值相加,保存到sum中,当k自增到一个值使sum的值大于8888时,那么k-1也就是是整个k数列的和小于8888的最大的值了。
int result = (int)((double)sqrt(2*N)-0.5);