字符串处理大数问题
发布时间:2020-12-14 02:33:33 所属栏目:大数据 来源:网络整理
导读:#includeiostream#includestringusing namespace std;string add(string s1,string s2){ int j,l,la,lb; string max,min; max=s1; min=s2; if(s1.length()s2.length()) { max=s2; min=s1; } la=max.size();//计算字符串长度 lb=min.size(); l=la-1; for(j=lb
#include<iostream> #include<string> using namespace std; string add(string s1,string s2) { int j,l,la,lb; string max,min; max=s1; min=s2; if(s1.length()<s2.length()) { max=s2; min=s1; } la=max.size();//计算字符串长度 lb=min.size(); l=la-1; for(j=lb-1; j>=0; j--,l--) max[l] += min[j]-'0'; //每一位相加,用到加法运算符,全部按照asiic码表来,就会多加一次48,所以要减去ascii值为48的‘0’ for(j=la-1; j>=1; j--) if(max[j]>'9')//若相加超过9,进位 { max[j]-=10; max[j-1]++; } if(max[0]>'9')//首位大于9,再加一个数 { max[0]-=10; max='1'+max; } return max; } int main() { int n,i; string a[1001]; a[0]="1"; a[1]="1"; a[2]="2"; a[3]="4"; for(i=4; i<1001; ++i) a[i]=add(add(a[i-1],a[i-2]),a[i-4]); while(cin>>n) cout<<a[n]<<endl; return 0; }
找的第二个解决大数问题的方法,已经get√ (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |