我这里采用的是递归实现的方法,但是发现到1000的话,就超时了,还请大佬们指点
#include <iostream>
using namespace std;
int CalNum(int num,int dif)
{
if (dif == 1 || dif == 0)return 1;
int val = 1;
for (int i = 1; i < dif; i++)
{
val = ((long long)val % 10000 + CalNum(i, abs(num - i)) % 10000)%10000;
}
return val%10000;
}
int main() {
int n;
cin >> n;
if (n <= 0) return 0;
int total = CalNum(n, n);
cout << total << endl;
system("pause");
return 0;
}