1 条题解
-
0
C :
#include <stdio.h> int solve(int n) { if(n<3) return 0; else if(n==3) return 1; else return (solve(n/2)+solve(n-n/2)); } int main() { int n; while(scanf("%d",&n)!=EOF) { printf("%d\n",solve(n)); } return 0; }
C++ :
#include <bits/stdc++.h> using namespace std; int d[10000005]; int dp(int n) { if (d[n]!=-1) return d[n]; else return d[n]=dp(n/2)+dp(n-n/2); } int main() { int n; while(~scanf("%d",&n)){ memset(d,-1,sizeof(d)); d[0]=d[1]=d[2]=0; d[3]=1; printf("%d\n",dp(n)); } return 0; }
- 1
信息
- ID
- 829
- 时间
- 2000ms
- 内存
- 128MiB
- 难度
- (无)
- 标签
- 递交数
- 0
- 已通过
- 0
- 上传者