题目描述
neuq最近推出了一套具有特殊意义的邮票,邮票的价值是从1分到N分。并且每张邮票的价值都不相同。
谷学长看中了这套邮票,可是一掏兜发现自己只有M分。但是他非常想买,于是他决定买总价值刚好为M分的邮票,但谷学长不希望他买的邮票断断续续,所以他还希望能够买从x分到y分连续的y-x+1张邮票。
你的任务是求出所有符合要求的方案,以[x,y]的形式输出。
输入描述
输入包含多组数据,每组数据只有一行,包含两个数N和M(1<=N,M<=10^9)。
输出描述
对于每组输入数据,每行输出包含一个合法方案:[x,y]。按x值从小到大输出。
每组输出数据不含任何空格。
样例输入
20 15
样例输出
[1,5]
[4,6]
[7,8]
[15,15]
源码:
import java.util.ArrayList;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner= new Scanner(System.in);
ArrayList<String> a=new ArrayList();//用于所有数据的输出
while(scanner.hasNext()) {
int N=scanner.nextInt();
int M=scanner.nextInt();
for(int i=1;i<=M;i++) {//双层循环嵌套
int sum=0;
for(int j=i;j<=M;j++) {
sum=sum+j;
if (sum==M) {
a.add("["+i+","+j+"]");
}
}
}
}//while循环结束
//输出数组中内容
for(int i=0;i<a.size();i++) {
System.out.println(a.get(i));
}
}
}