叽叽叽叽及你太美
2024-07-05 17:37:54
发布于:北京
#include<bits/stdc++.h>
using namespace std;
int n,f[5010][5010],len;
void jiafa(int k){
for(int i=1;i<=len;i++){
f[k][i]=f[k-1][i]+f[k-2][i];
}//两数相加
for(int i=1;i<=len;i++){//进位
if(f[k][i]>=10){
f[k][i+1]+=f[k][i]/10;
f[k][i]%=10;
if(f[k][len+1]>0){
len++;
}
}
}
}
int main(){
cin>>n;
len=1;
f[1][1]=1;
f[2][1]=2;
for(int i=3;i<=n;i++){
jiafa(i);
}//开始计算啦
for(int i=len;i>=1;i--){
cout<<f[n][i];
}//输出
return 0;
}
#include<bits/stdc++.h>
using namespace std;
int a[114514],b[11451],c[11451];
int main(){
string s1,s2;
cin>>s1>>s2;
int l1=s1.size(),l2=s2.size();
//将a,b数组中设为s1,s2。
for(int i=0;i<l1;i++){
a[i]=s1[l1-i-1]-'0';
}
for(int i=0;i<l2;i++){
b[i]=s2[l2-i-1]-'0';
}
int len=max(l1,l2)-1;//此代码用来是记录最高位的下标。
c[0]=0;
for(int i=0;i<=len;i++){
c[i]=c[i]+(a[i]+b[i]);//进行加法
c[i+1]+=c[i]/10;//下一位初始值
c[i]%=10;//此位置只保留1位
}
if(c[len+1]){//是否在最终进位
len++;//多输出最高位(最高进位)
}
for(int i=len;i>=0;i--){
cout<<c[i];
}
return 0;//为什么要加这个,咱也不知道,咱也不敢问。
}
这里空空如也
有帮助,赞一个