zoukankan      html  css  js  c++  java
  • hdu2058java

    The sum problem

    Time Limit: 5000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)
    Total Submission(s): 21555    Accepted Submission(s): 6320


    Problem Description
    Given a sequence 1,2,3,......N, your job is to calculate all the possible sub-sequences that the sum of the sub-sequence is M.
     
    Input
    Input contains multiple test cases. each case contains two integers N, M( 1 <= N, M <= 1000000000).input ends with N = M = 0.
     
    Output
    For each test case, print all the possible sub-sequence that its sum is M.The format is show in the sample below.print a blank line after each test case.
     
    Sample Input
    20 10
    50 30
    0 0
     
    Sample Output
    [1,4]
    [10,10]
     
     
    [4,8]
    [6,9]
    [9,11]
    [30,30]

    /*import java.util.*;
    class Main{
    public static void main(String args[])
    {Scanner cin=new Scanner(System.in);
    while(cin.hasNext())
    {int n=cin.nextInt();
    int m=cin.nextInt();
    if(n==0&&m==0)
    break;
    for(int i=1;i<=n;i++)
    {int sum=i;
    int k=0,s=0,flag=0;
    for(int j=i+1;j<=n;j++)
    { sum+=j;
    if(sum==m)
    {flag=1;
    k=i;
    s=j;
    break;}
    else if(sum>m)
    {break;
    }
    }
    if(flag==1)
    System.out.println("["+k+","+s+"]");
    }
    if(n>=m)
    System.out.println("["+m+","+m+"]");
    System.out.println();
    }
    }
    }*/

    上面的那个代码会超时,下面的代码不会超时,这是一个数学题,a+(i*(i+1)/2)=m,当a最小的时候是等于1,所以1+(i*(i+1)/2)<=m;

    所以i<=sqrt(2*m);因为这是一个等差数列,d为1;
    import java.util.*;
    class Main{
    public static void main(String args[])
    {Scanner cin=new Scanner(System.in);
    while(cin.hasNext())
    {long n=cin.nextInt();
    long m=cin.nextInt();
    if(n==0&&m==0)
    break;
    long d=0;
    for(int i=(int)Math.sqrt(2*m);i>0;i--)
    {
    d=m-(i+i*i)/2;
    if(d%i==0)
    System.out.println("["+(d/i+1)+","+(d/i+i)+"]");
    }

    System.out.println();
    }
    }
    }

  • 相关阅读:
    实战-rsync+inotify打造文件实时备份
    实战-Mysql5.6.36脚本编译安装及初始化
    实战-CentOS6.8配置nfs服务
    CentOS7操作系统初始化
    docker搭建 SonarQube代码质量管理平台
    ubuntu 教程
    前端图表库
    WebSSH2安装过程可实现WEB可视化管理SSH工具
    devops 自动化平台网址
    AIops 智能运维平台
  • 原文地址:https://www.cnblogs.com/1314wamm/p/5388831.html
Copyright © 2011-2022 走看看