自创高精才60分
查看原帖
自创高精才60分
672360
Ch35楼主2022/9/12 21:24

我自创的一种高精,用double存,输出时是按位输出,但是不知为何只有60分:

#include<bits/stdc++.h>
using namespace std;
double dp[105][105];
short a[105][105],n,b[100];
int main(){
	cin>>n;
	for(int i=1;i<=n;i++){
	    for(int j=1;j<=n;j++)cin>>a[i][j];
    }
    dp[1][1]=1;
    for(int i=1;i<=n;i++){
        for(int j=1;j<=n;j++){
            if(dp[i][j]>=1&&a[i][j]!=0){
               if(j+a[i][j]<=n)dp[i][j+a[i][j]]+=dp[i][j];
               if(i+a[i][j]<=n)dp[i+a[i][j]][j]+=dp[i][j]; 
            } 
            
        } 
    }
    int nn=0;
    while(dp[n][n]>=1){
        b[nn++]=short(dp[n][n]-floor(dp[n][n]/10)*10);
        if(b[nn]==0){
            dp[n][n]/=10;
        }       
        else {
            dp[n][n]=floor(dp[n][n]/10)*10;
        }
    }
    for(int i=nn-1;i>=0;i--)cout<<b[i];
	return 0;
}

请帮我查一下错,谢谢!

2022/9/12 21:24
加载中...