出上打印出符合题目描述的全部正整数序列,每行一个序列,每个序列都从该序列的最小
正整数开始、以从小到大的顺序打印。如果结果有多个序列,按各序列的最小正整数的大小从小到大打印各序列。此外,序列不允许重复,序列内的整数用一个空格分隔。如果没有符合要求的序列,输出"NONE"。
例如,对于15,
其输出结果是: 1 2 3 4 5
4 5 6
7 8
对于16,其输出结果是: NONE
正整数开始、以从小到大的顺序打印。如果结果有多个序列,按各序列的最小正整数的大小从小到大打印各序列。此外,序列不允许重复,序列内的整数用一个空格分隔。如果没有符合要求的序列,输出"NONE"。
例如,对于15,
其输出结果是: 1 2 3 4 5
4 5 6
7 8
对于16,其输出结果是: NONE
{
i=i+1;
}
然后如果i=num的话就输出 1到i
不等就不输
第二列怎么办?
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;
}