P1255 数楼梯 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)
看上去是个斐波那契数列,其实是高精度计算啦
虽说是个水题,但可以练习一下高精度计算,之前我都是顺序输入,通过指针偏移留出进位空间,这次经大佬提醒,改为逆序输入,确实方便很多,这次又犯了进位的错误,好在发现了
a[1]='0+1而不是a[1]=0+1 进位之前,先对后一位进行赋值为‘0’
#include <bits/stdc++.h>
bool f(int a,int b){
return a<b;
}
using namespace std;
int jw(char *a,int n),w=1;
char a[5010],b[5010],c[5010];
int main(){
int n;scanf("%d",&n);
if (n==1||n==2){
printf("%d",n);
}
else{
a[0]='1';
b[0]='2';
n-=2;
while (n--){
for (int i=0;i<w;i++){
if (a[i]==0)
a[i]='0';
c[i]=a[i]+b[i]-'0';
}
w=jw(c,strlen(c));
strcpy(a,b);
st