問題描述:
編寫應用程序,輸出滿足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;
}
}
}
}