2 条题解
-
1
using namespace std; #define MAX 9999 int f[1001][MAX]; int len; void fun(int x){ for(int i=0;i<len;i++){ f[x][i]+=f[x-1][i]+f[x-2][i]; if(f[x][i]>9){ f[x][i+1]++; f[x][i]-=10; } if(i==len-1&&f[x][len])len++; } } int main(){ int m,n; cin>>m>>n; f[1][0]=1; f[2][0]=1; len=1; int x=n-m+1; for(int i=3;i<=x;i++){ fun(i); } while(f[x][len-1]==0&&len>1){ len--; } for(int i=len-1;i>=0;i--){ cout<<f[x][i]; } return 0; }
好懂,让题目直接坐下
-
0
#include<bits/stdc++.h> using namespace std; int m,n; string a,b,c,d; string add(string sa,string sb){ int lena=sa.size(); int lenb=sb.size(); int a[1005]={0},b[1005]={0},c[1005]={0}; int lenc=lena>lenb?lena:lenb; for(int i=0;i<lena;i++) a[lena-i-1]=sa[i]-'0'; for(int i=0;i<lenb;i++) b[lenb-i-1]=sb[i]-'0'; for(int i=0;i<lenc;i++){ c[i]+=a[i]+b[i]; if(c[i]>=10){ c[i+1]=c[i]/10; c[i]%=10; } // cout<<c[i]; } if(c[lenc]>0)lenc++; string sc; for(int i=lenc-1;i>=0;i--) sc+=c[i]+'0'; // cout<<sc; return sc; } int main(){ cin>>m>>n; // a="0"; // b="1"; // c="2"; string a[1005]={"0","1","1"}; for(int i=3;i<=n-m+1;i++){ a[i]=add(a[i-1],a[i-2]); // cout<<a[i]; } cout<<a[n-m+1]; return 0; }
- 1
信息
- ID
- 1385
- 时间
- 1000ms
- 内存
- 125MiB
- 难度
- 2
- 标签
- 递交数
- 11
- 已通过
- 4
- 上传者