zoukankan      html  css  js  c++  java
  • 7E

    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]

    // 遍历所有子列
     1 #include<stdio.h>
     2 int main()
     3 {
     4     int n, m, i,j, t, flag;
     5     while(scanf("%d %d", &n, &m), !(n==0&&m==0))
     6     {
     7         for(i=1;i<=n;i++)
     8         {
     9             flag=0; t=0;
    10             for(j=i;j<=n;j++)
    11             {
    12                 t+=j;
    13                 if(t==m)
    14                 { flag=1; break; }
    15                 if(t>m) break;
    16             }
    17             if(flag) printf("[%d,%d]
    ", i, j);
    18         }
    19         printf("
    ");
    20     }
    21     return 0;
    22 }
    Time Limit Exceeded
    // 老老实实算吧
     1 #include<stdio.h>
     2 #include<math.h>
     3 int main()
     4 {
     5     int n, m, i,j;
     6     while(scanf("%d %d", &n, &m), !(n==0&&m==0))
     7     {
     8         for(i=(int)sqrt(2.0*m);i>0;i--)    // a1*n+n*(n-1)/2=(2*a1+(n-1))*n/2=m,
     9         {                                // 又a1>=1, 则n<sqrt(2*m). 
    10             j=(2*m/i-i+1)/2;            // a1=(2*m/n-n+1)/2
    11             if((2*j+i-1)*i/2==m)
    12                 printf("[%d,%d]
    ", j, i+j-1);
    13         }
    14         printf("
    ");
    15     }
    16     return 0;
    17 }
    AC
     
  • 相关阅读:
    java面向对象day01
    找工作——JVM内存管理
    找工作——多线程
    找工作-——网络IO
    找工作--volatile
    找工作——异常处理
    找工作--设计模式
    Sqoop安装
    NIO
    Hadoop源码编译
  • 原文地址:https://www.cnblogs.com/goldenretriever/p/10357103.html
Copyright © 2011-2022 走看看