出上打印出符合题目描述的全部正整数序列,每行一个序列,每个序列都从该序列的最小
正整数开始、以从小到大的顺序打印。如果结果有多个序列,按各序列的最小正整数的大小从小到大打印各序列。此外,序列不允许重复,序列内的整数用一个空格分隔。如果没有符合要求的序列,输出"NONE"。    
例如,对于15,
其输出结果是:   1 2 3 4 5   
                 4 5 6  
                 7 8  
 对于16,其输出结果是: NONE

解决方案 »

  1.   

    for(i<num ,i++)
    {
       i=i+1;
    }
     
    然后如果i=num的话就输出 1到i 
    不等就不输
    第二列怎么办?
      

  2.   

    #include <stdio.h>
    int main()
    {
     int n;
     printf("Please input n:");
     scanf("%d", &n);
     divid(n);
     return 0;
    }
    divid(n)
    {
     int i,j;
     int sum = 0;
     int flag = 0; if (n<=0)
       printf("NONE\n"); for (j=1;j<n;j++)
      {
        sum = 0;
        for ( i=j; i<n; i++)
        {
          sum += i;
          if (sum == n)
          {
    int k;
    for (k =j; k<=i; k++)
     printf("%d ", k);
    printf("\n");
    flag = 1;
    break;
           }
          if (sum > n)
          break;
        }  }
      if (flag == 0)
      printf("NONE\n");
      return;
    }