c语言将一个正整数n分解成几个正整数相加
时间: 2023-09-10 15:15:49 浏览: 136
c程序 两个大型整数相加
可以使用递归来解决这个问题。首先判断n是否为1,如果是,则返回1。如果不是,则从2开始循环到n,对于每个数i,递归调用函数分解n-i,并将i加入结果中。最终返回结果。
以下是一个示例代码:
```
#include <stdio.h>
void decompose(int n, int min, char *output) {
int i;
if (n == 0) {
printf("%s\n", output);
return;
}
for (i = min; i <= n; i++) {
char buf[100];
sprintf(buf, "%s %d", output, i);
decompose(n - i, i, buf);
}
}
int main() {
int n;
printf("请输入一个正整数:");
scanf("%d", &n);
decompose(n, 1, "");
return 0;
}
```
输入一个正整数n,程序将输出所有将n分解成若干个正整数相加的方式。例如,如果输入4,则输出:
```
1 1 1 1
1 1 2
1 3
2 2
4
```
阅读全文