输入一个整数,输出若干个和为这个整数的连续序列(Java实现)

论坛 期权论坛 脚本     
匿名技术用户   2020-12-28 07:58   11   0

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");
  }
 }
}

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:7942463
帖子:1588486
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP