连续整数固定和问题。编写一个程序,找出一个数的全部连续固定整数和。所谓一个数m的连续整数固定和,就是指存在连续的整数a1,a2,…,an,使得a1+a2+…+an=m。例如27的全部连续固定整数和有3组:
2+3+…+7=27
8+9+10=27
13+14=27
请编程实现。
import java.util.Scanner;
/**
*
* 连续整数固定和问题。编写一个程序,找出一个数的全部连续固定整数和。
* 所谓一个数m的连续整数固定和,就是指存在连续的整数a1,a2,…,an,使得a1+a2+…+an=m。例如27的全部连续固定整数和有3组:
* 2+3+…+7=27
* 8+9+10=27
* 13+14=27
* 请编程实现。
*
*/
public class LianXuShu {
public static void main(String[] args) {
Scanner input=new Scanner(System.in);
int m=input.nextInt();
input.close();
int top=1;
int tail=1;
int sum=1;
int i=1;
while(i<=(m/2)+1){
if(sum>m){
sum-=tail;
tail++;
}
if(sum<m){
i++;
sum+=i;
top++;
}
if(sum==m){
pri(tail,top,m);
i++;
sum+=i;
top++;
}
}
}
public static void pri(int tail,int top,int m){
for (int i = tail; i <= top; i++) {
if(i==top){
System.out.println(i+"="+m);
}else{
System.out.print(i+"+");
}
}
}
}