#include<stdio.h> #include<math.h> //大于20时,分子超限,呜呜呜 //对组合用递归 cmn=cm-1 n+cm-1 n-1 long long int zuhe(int n,int m) { if(n==0||m==n) return 1; else return zuhe(n,m-1)+zuhe(n-1,m-1); } int main() { int n; while(scanf("%d",&n)!=EOF) { long long int sum=0; long long int num=0; for(int i=0;i<=n;i=i+2) { num=pow(2,n-i); long long int x=num; num=num*zuhe(i,n); // printf("%d %lld %lld\n",i,zuhe(i,n),x); sum+=num; } printf("%lld\n",sum); } } |
Double click to view unformatted code.