1 条题解
-
0
C :
#include <stdio.h> #include<string.h> int main() { int n,x,a[7][201],i,j; while(scanf("%d%d",&n,&x)!=EOF) { memset(a,0,sizeof(a)); for(j=0;j<=n;j++) a[1][j]=1; for(i=2;i<=x;i++) for(j=0;j<=n-x;j++) { if(j>=i) a[i][j]=a[i-1][j]+a[i][j-i]; else a[i][j]=a[i-1][j]; } printf("%d\n",a[x][n-x]); } return 0; }
C++ :
#include<iostream> #include<cstring> using namespace std; int count=0; void f(int n,int x,int mi) { if (n<mi) return ; if (x==1 && n>=mi) count++; else { int i; for (i=mi;i<=n/x;i++) f(n-i,x-1,i); } } int main() { int i,n,k,max; while ( cin>>n>>k){ count=0; // if (n%k==0) max=n/k-1; //else max=n/k; for (i=1;i<=max;i++) f(n-i,k-1,i); cout<<count<<endl;} return 0; }
Pascal :
const maxn=200; maxk=6; var n,k,i,j:longint; f:array[0..maxn,0..maxk] of longint; begin readln(n,k); f[0,0]:=1; for i:=1 to n do for j:=1 to k do if(i>=j)then f[i,j]:=f[i-j,j]+f[i-1,j-1]; writeln(f[n,k]); end.
- 1
信息
- ID
- 212
- 时间
- 1000ms
- 内存
- 125MiB
- 难度
- (无)
- 标签
- 递交数
- 0
- 已通过
- 0
- 上传者