zoukankan      html  css  js  c++  java
  • 输入一个正整数n,输出所有和为n的连续正整数序列

      public static void main(String[] args) {
            Scanner sc = new Scanner(System.in);
            while (true) {
                System.out.print("please input a positive integer:");
                int n = sc.nextInt();
                if(n <= 2) break;
                int count = getSubInteger(n);
                
                System.out.println(n + "共有 " + count + " 种连续分解!");
                
                System.out.println("=========================");
            }
            sc.close();
        }
        
        public static int getSubInteger(int n) {
            int min = 1;
            int max = 1;
            int sum = 0;
            int count = 0;
            while (min <= (n-1) / 2 ) {
                if (sum == n) {
                    System.out.print(n + " = ");
                    for (int k = min; k < max; k++) {
                        if (k < max - 1)
                            System.out.print(k + " + ");
                        else
                            System.out.print(k);
                    }
                    System.out.println();
                    count++;
                    min++;
                    max = min;
                    sum = 0;
                } else if (sum > n) {
                    min++;
                    max = min;
                    sum = 0;
                } else {
                    sum = sum + max;
                    max++;
                }
            }
            return count;
        }
  • 相关阅读:
    FastDFS迁移步骤
    Centos7 单节点安装 FastDFS + FastDHT服务
    CentOS 7.0 上安装和配置 VNC 服务器
    Ubuntu 18.04 安装 Xfce桌面和VNC的方法
    Ubuntu 16.04设置root用户登录图形界面
    Windows批量查找文件
    WIN10打开网络共享文件夹提示0x80004005怎么解决?(转载)
    ack 工具
    win7/win10 未分配磁盘怎样创建扩展分区 也就是逻辑分区(转截)
    [bzoj4842][bzoj1283][Neerc2016]Delight for a Cat/序列_线性规划_费用流
  • 原文地址:https://www.cnblogs.com/archimedes-euler/p/9975782.html
Copyright © 2011-2022 走看看