输出全是0,求助
查看原帖
输出全是0,求助
768144
_Trangle_楼主2023/1/8 20:16

本地测出来输出全是0。

#include<stdio.h>
#include<math.h>
#include<string.h>
int n,i,la=1,a[1005],ans[1005],tmp,*p;
void result(int *arr1,int *arr2){
    int num[1005];
    memset(num,0,sizeof num);
    for(int i=1;i<=500;i++)
        for(int j=1;j<=500;j++)
            num[i+j]+=arr1[i]*arr2[j];
    for(int i=1;i<=500;i++){
        num[i+1]+=num[i]/10;
        num[i]%=10;
    }
    memcpy(arr1,num,sizeof num);
}

int main(){
    scanf("%d",&n);
    printf("%d",(int)(n*log10(2)+1));
    a[1]=1;
    ans[1]=2;
    while(n){
        if(n&1) result(ans,a);
        n>>=1;
        result(a,a);
    }
    a[1]--;
    for(i=500;i>=1;i--)
       if(i%50) printf("%d",ans[i]);
       else printf("\n%d",ans[i]);
    return 0;
}

2023/1/8 20:16
加载中...