///1.斐波那契数列 #include<stdio.h> int main() { int a[41]={0,1,1}; int n,m; for(int i=3;i<=40;i++) { a[i]=a[i-1]+a[i-2]; } scanf("%d",&n); while(n--) { scanf("%d",&m); printf("%d\n",a[m]); } return 0; }
///2.排列组合 #include<stdio.h> long long g(long long a,long long b){//从a到b的阶乘 long long s=1; while(1) { s*=a; if(a==b) break; a++; } return s; } long long f(long long i,long long j){ return g(j+1,j+i)/g(1,i); } int main() { int n; long long i,j,k; long long m,s=0; scanf("%d",&n); while(n--) { s=0; scanf("%lld",&m); m--; s=1; //i==0时s==1; for(i=1;i<=m/3;i++){ //使 i<=j 方便计算 j=m-2*i; s+=f(i,j); } for(;2*i<=m;i++){ j=m-2*i; s+=f(j,i); } printf("%lld\n",s); } return 0; }
原文地址:https://www.cnblogs.com/lhl2019/p/12109105.html
时间: 2024-10-19 13:21:49