最優分解問題(Java版)

import java.util.*;
public class NiceDec {
	public static void main(String[] args) {
		
		Scanner in = new Scanner(System.in);
		int data = in.nextInt();
		int sum = 0;
		ArrayList<Integer> list = new ArrayList<Integer>();
		for (int i = 2; i <= data; i++) {
			sum += i;
			if (sum <= data)
				list.add(i);
			else { 
				sum -= i;
				break;
			}
		}
		for (int i = 0; i < list.size(); i++) {
			System.out.print(list.get(i) + " ");
		}
		System.out.println(sum);
		int remainData = data - sum;
		int length = list.size();

		int count = remainData / length;
		int values = remainData % length;
		System.out.println(remainData + ":"+length+":"+count+ ":" + values);

		for (int i = 0; i < list.size(); i++) {
			list.set(i, list.get(i) + count);
		}
		
		int size = list.size();
		for (int i = size -1; i >= size-values; i--) {
			list.set(i, list.get(i) + 1);
		}
	
		for (int i = 0; i < list.size(); i++) {
			System.out.print(list.get(i) + " ");
		}
	}
}

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