我一开始以为是个记忆化搜素,然后觉得哇这样的记忆化怎么存呢
后来发现是个打表题(bushi
#define _CRT_SECURE_NO_WARNINGS
#include <cstdio>
#include <iostream>
#include <algorithm>
#include <cstring>
const int N = 1e3 + 5;
using namespace std;
int a[N] = { 1 };
int n;
void searchh(int num, int wei);
void print(int weishu);
int main()
{
scanf("%d", &n);
searchh(n, 1);
return 0;
}
void print(int weishu)
{
for (int i = 1; i < weishu; i++) printf("%d+", a[i]);
printf("%d\n", a[weishu]);
}
void searchh(int num, int wei)
{
int i;
for (i = a[wei - 1]; i <= num; i++) {
if (i < n) {
num -= i;
a[wei] = i;
if (num == 0) print(wei);
else searchh(num, wei + 1);
num += i;
}
}
}