Run ID | 作者 | 问题 | 语言 | 测评结果 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|
29580 | jiabokai | 上台阶 | C++ | 解答错误 | 0 MS | 368 KB | 902 | 2023-10-31 20:21:32 |
#include<iostream> #include<cstring> #include<string> using namespace std; struct bign{ int d[10000]; int len; bign(){ len=0; memset(d,0,sizeof(d)); } }; bign change(string str){ bign a; int len=str.size(); for(int i=0;i<len;i++){ a.d[a.len]=str[len-i-1]-'0'; a.len++; } return a; } bign add(bign a,bign b){ bign c; int r=0; for(int i=0;i<a.len||i<b.len;i++){ int temp=a.d[i]+b.d[i]+r; c.d[i]=temp%10; c.len++; r=temp/10; } if(r>0){ c.d[c.len]=r; c.len++; } while(c.d[c.len-1]==0&&c.len>1){ c.len--; } return c; } int main(){ bign o; o.len=1; o.d[0]=1; bign t; t.len=1; t.d[0]=2; bign r; int n; cin>>n; if(n==1) cout<<1<<endl; else if(n==2) cout<<2<<endl; else{ for(int i=0;i<n-2;i++){ r=add(o,t); o=t; t=r; } } for(int i=r.len-1;i>=0;i--){ cout<<r.d[i]; } return 0; }