輸入一個整數,輸出若干個和爲這個整數的連續序列(Java實現)

Example:

input: 78

output:
1,2,3,4,5,6,7,8,9,10,11,12
18,19,20,21
25,26,27

import java.util.Scanner;
import org.junit.Test;

public class TestIntegersSum {

    public static void main(String[] args) {
		new TestIntegersSum().integerSum();
	}    

	@SuppressWarnings("resource")@Test
	public void integerSum(){
		System.out.println("請輸入一個整數:");
		Scanner scan = new Scanner(System.in);
		int scanNum = scan.nextInt();
		//判斷輸入的是否是負數或正數
		boolean minusFlag = false;
		if(scanNum<0){
			scanNum = -scanNum;
			minusFlag = true;
		}
		boolean hasflag = false;
		for (int i = 1; i <= scanNum / 2; i++) {
			int num = i;
			for (int j = i+1; j < scanNum; j++) {
				num += j;
				if (num > scanNum) {
					break;
				} else if (num == scanNum) {
					for (int k = i; k <= j; k++) {
						if(!minusFlag){
							if (k < j) {
								System.out.print(k + ",");
							} else if (k == j) {
								System.out.println(k);
							}
						}else{
							if (k < j) {
								System.out.print(-k + ",");
							} else if (k == j) {
								System.out.println(-k);
							}
						}
						
					}
					hasflag = true;
					break;
				}

			}
		}
		
		if(!hasflag){
			System.out.println("none");
		}
	}
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章