2 条题解
-
-1
#include<stdio.h> int a[1050];//设置一个数组,可以避免重复计算 void fun(int n) { int i; //当n=1时数组数为1 a[0]=1; a[1]=1; for(i=2;i<=n;i++) { if(i%20)//数字n为偶数时,是n-1的数组可能数加上n/2的数组可能数 a[i]=a[i-1]+a[i/2]; if(i%21)//数字n为奇数时,与n-1的数组可能数相等 a[i]=a[i-1]; } } int main() { int i,n; scanf("%d",&n); fun(n); printf("%d\n",a[n]); return 0; } 这个全过
-
-1
#include using namespace std; class Solution { public: int SumNum(int num) { int sum =0; //递归结束条件: if (num<= 1) return 1; for (int i = 0; i <=num / 2; i++) { sum += SumNum(i); } return sum; } };
int main() { Solution s; int n = 0; cin >> n; cout << s.SumNum(n) << endl;; return 0; }
- 1
信息
- ID
- 5086
- 时间
- 1000ms
- 内存
- 125MiB
- 难度
- 2
- 标签
- 递交数
- 116
- 已通过
- 78
- 上传者