输入:1 2 123 23 234 45
输出:3 6 5 9 9
即输入一个整数N,输出连续相加等于N的所有情况
C:
暴力解法:
#include <stdio.h>
int main(int argc, const char * argv[]) {
int N;
scanf("%d", &N);
int a[N];
for (int i = 0; i < N ; i++) a[i] = i + 1;
for (int i = 0; i < N ; i++) {
for (int j = 1; j < N ; j++) {
if ((a[i] + a[i+j]) * (j + 1) / 2 == N ) {
for (int k = i; k <(a[i] + j - 1) ; k++) {
printf("%d ",a[k]);
}
printf("%d\n",a[i+j]);
j = N;
}
}
}
return 0;
}
网友评论