题目描述
某人写了n封信和n个信封,如果所有的信都装错了信封。求所有信都装错信封共有多少种不同情况。
输入输出格式
输入格式:
一个信封数n(n<=20)
输出格式:
一个整数,代表有多少种情况。
题解
本题即为伯努利信封问题
360百科:
STD
1 #include2 using namespace std; 3 int n; 4 int b(int n) 5 { 6 if (n==1) return 0; 7 else if (n==2) return 1; 8 else return (n-1)*(b(n-1)+b(n-2)); 9 }10 int main()11 {12 ios::sync_with_stdio(false);13 cin>>n;14 cout<
然而这题范围只有二十...
1 #include2 using namespace std; 3 int n; 4 int main(){ 5 cin>>n; 6 if(n==1){ 7 cout<<0; 8 return 0; 9 }10 if(n==2){11 cout<<1;12 return 0;13 }14 if(n==3){15 cout<<2;16 return 0;17 }18 if(n==4){19 cout<<9;20 return 0;21 }22 if(n==5){23 cout<<44;24 return 0;25 }26 if(n==6){27 cout<<265;28 return 0;29 }30 if(n==7){31 cout<<1854;32 return 0;33 }34 if(n==8){35 cout<<14833;36 return 0;37 }38 if(n==9){39 cout<<133496;40 return 0;41 }42 if(n==10){43 cout<<1334961;44 return 0;45 }46 if(n==11){47 cout<<14684570;48 return 0;49 }50 if(n==12){51 cout<<176214841;52 return 0;53 }54 if(n==13){55 cout<<2290792932;56 return 0;57 }58 if(n==14){59 cout<<32071101049;60 return 0;61 }62 if(n==15){63 cout<<481066515734;64 return 0;65 }66 if(n==16){67 cout<<7697064251745;68 return 0;69 }70 if(n==17){71 cout<<130850092279664;72 return 0;73 }74 if(n==18){75 cout<<2355301661033953;76 return 0;77 }78 if(n==19){79 cout<<44750731559645106;80 return 0;81 }82 if(n==20){83 cout<<895014631192902121;84 return 0;85 }86 }
不要问我第二段从哪来的,我是打出STD后CV大法搞出来的...