1 solutions
-
0
C :
#include<stdio.h> int n; void qie(int l,int i) { int j; for(j=i;j<=l;j++) { l-=j;if(l==0)n++; if(l>=j)qie(l,j); l+=j; } } int main() { int l; while(scanf("%d",&l)==1) { n=0; qie(l,1); printf("%d\n",n-1); } return 0; }C++ :
#include <stdio.h> int dp[80][80]; int main() { int i,j; int n; dp[0][0]=0; for(j=0;j<80;j++) dp[0][j]=1; for(i=0;i<80;i++) dp[i][0]=0; for(j=1;j<80;j++) dp[1][j]=1; for(i=2;i<80;i++) for(j=1;j<80;j++) { if(j>i) dp[i][j]=dp[i][i]; else dp[i][j]=dp[i][j-1]+dp[i-j][j]; } while(scanf("%d",&n)!=EOF) { printf("%d\n",dp[n][n]-1); } return 0; }
- 1
Information
- ID
- 18321
- Time
- 1000ms
- Memory
- 128MiB
- Difficulty
- (None)
- Tags
- # Submissions
- 0
- Accepted
- 0
- Uploaded By