问题描述:
编写应用程序,输出满足1+2+3+......+n<8888的最大正整数n
问题分析:
根据问题描述可以看到,我们需要进行累加,然后对累加起来的值进行判断,判断累加到那个数的时候 根据问题描述可以看到,我们需要进行累加,然后对累加起来的值进行判断,判断累加到那个数的时候这个数最大而且还小于8888。
算法设计:
为了方便操作,我们可以从键盘录入一个数作为这个判断的最大值,对于累加的计算我们采用for循环的方法,i从1开始累加,然后对其每累加一个值后进行判断累加值为sum,判断sum是否小于n,小于则继续累加,若不小于则跳出循环,输出i-1。
**注意这里是i-1,因为我们是对每个累加值都进行了判断,这个i值是连续的,当不满足跳出来时,说明i-1仍然是满足的,所以我们实际应该输出i-1.**
package com.java_03;
import java.util.Scanner;
public class Test04_6 {
public static void main(String[] args) {
//定义初始值i,累加值sum,累加上限值n
int i,sum,n;
sum = 0;
//键盘录入累加上限n
System.out.println("请输入累加上限值:");
Scanner sc = new Scanner(System.in);
n = sc.nextInt();
for(i=1; i<n; i++) {
sum +=i;
//判断sum是否小于n
if(sum<n) {
continue;
} else {
System.out.println("最大正整数:"+(i-1));
break;
}
}
}
}