我考场上打的程序连样例都没过,竟然还能骗来20分。。。
我也是呵呵一笑了
这是标程,此为递归做法
#include<cstdio> #include<cstring> #include<cmath> #include<algorithm> #include<iostream> using namespace std; int f(int p,int q) { if(q == 1) return 1; else if(p < q) return 0; else return f(p - 1,q - 1) + q * f(p - 1,q); } int main() { int n,k; scanf("%d %d",&n,&k); printf("%d",f(n,k)); return 0; }
这是我考场上改了40分钟都没过样例后来终于被别人改过来的程序
#include<cstdio> #include<cstring> #include<cmath> #include<algorithm> #include<iostream> using namespace std; int s[30][30]; int n,k,i,j; int main() { // freopen("setsub.in","r",stdin); // freopen("setsub.out","w",stdout); scanf("%d%d",&n,&k); s[1][1] = 1; s[1][0] = 0; s[0][1] = 0; for(i = 1;i <= n;i++) { for(j = 1;j <= i;j++) { s[i][j] = s[i - 1][j - 1] + j * s[i - 1][j]; s[1][1] = 1; printf("%d %d = %d\n",i,j,s[i][j]); } } printf("%d ",s[3][1]); printf("%d",s[n][k]); return 0; }