没输出,谁来看看

P1009 [NOIP1998 普及组] 阶乘之和

LaFanCYC @ 2024-11-28 19:15:17

#include<bits/stdc++.h>
using namespace std;
const int N=310;
long long b[N],s[N],n,k;
void aplus(){
    for(int i=1;i<=N-1;i++){
        s[i]+=b[i];
        b[i]=0;
    }
    for(int i=1;i<=N-2;i++){
        s[i+1]+=s[i]/10;
        s[i]%=10;
    }
    b[1]=1;
}
void jc(int x){
    for(int i=1;i<=N-1;i++)
    b[i]*=x;
    for(int i=1;i<=N-2;i++){
        b[i+1]+=b[i]/10;
        b[i]%=10;
    }

}
int main(){
    cin>>n;
    b[1]=1;
    for(int i=1;i<=n;i++){
        jc(i);
        aplus();
    }
    for(int i=N-1;i>=1;i--){
        if(s[i]!=0) k=i;
        break;
    }
    for(int i=k;i>=1;i--)
        cout<<s[i];
    return 0;
}

by yise @ 2024-11-28 19:51:01

@LaFanCYC这不是乘法的高精吗


by yise @ 2024-11-28 19:51:50

break要在if里面


by LaFanCYC @ 2024-11-28 20:23:12

@yise好了感谢,除了这个主要是阶乘出了点问题


|