hdu 1041大数问题
来源:互联网 发布:工资查询软件 编辑:程序博客网 时间:2024/05/16 06:37
#include<iostream>#include<algorithm>#include<string>//在hdu上必须是string才能过,cstring不能过!CE了一次#include<cstdio>using namespace std;const int N=1010;string add(string a,string b){ if(a.length()<b.length()) { string temp; temp=a; a=b; b=temp; } int i,j; for( i=a.length()-1, j=b.length()-1;i>=0;i--,j--) { a[i]=a[i]+((j>=0)?b[j]-'0':0);//按字符接收 if(a[i]-'0'>9) { a[i]=(a[i]-'0')%10+'0'; if(i) a[i-1]++; else a="1"+a; } } return a;} int main(){ int n; string s[N]; s[0]=s[1]="0";s[2]="1";s[3]="1";s[4]="3";s[5]="5";s[6]="11"; for(int i=7;i<N;i++) { s[i]=add(s[i-1],add(s[i-2],s[i-2])); } while(cin>>n) { // if(!n) break; cout<<s[n]<<endl; } return 0;}