基础实验2-2.5 整数分解为若干项之和 (20 point(s))
这道题采用递归解法会比较简单。(说实话我不知道为啥实在不怎么会写递归,虽然看起来代码清晰但我脑子其实很乱……)
先给出accept代码:
#include<stdio.h>
#include<iostream>
#include<algorithm>
using namespace std;
int ans[1000] = { 0 };
int index = 0;
int Max = 1;
void problem(int len,int big,int rear) {
if (len == 0) {
printf("%d=", rear);
for (int i = 0; i < index; i++) {
if (i != index - 1)
printf("%d+", ans[i]);
else
printf("%d", ans[i]);
}
if (Max % 4 == 0)
printf("\n");
else {
if(ans[0]!=rear)
printf(";");
}
Max++;
}
for (int i = 1; i <= len; i++) {
if (i >= big) {
ans[index++] =