求助~~哪里有问题
查看原帖
求助~~哪里有问题
1475100
chenchen777楼主2025/2/6 16:46
#include<bits/stdc++.h>
using namespace std;

vector<int> mul(vector<int> &a,int b)
{
    int t=0;
    vector <int> c;
    for(int i=0;i<a.size()||t;i++)
    {
        if(i<a.size()) t=b*a[i];
        c.push_back(t%10);
        t=t/10;
    }
    return c;
}
vector <int> add(vector <int> &a,vector <int>&b)
{
    vector <int> c;
    int t=0;
    for(int i=0;i<a.size()||i<b.size();i++)
    {
        if(i<a.size()) t+=a[i];
        if(i<b.size()) t+=b[i];
        c.push_back(t%10);
        t=t/10;
    }
    if(t) c.push_back(t);
    return c;
}

vector <vector<int>> res;
vector <int> answer;
int main()
{
    int n;
    cin>>n;
    do
    {
        vector <int> n1;
        int k=n;
        while(n%10)
        {
            n1.push_back(n%10);
            n=n/10;
        }
        n=k;
        
        while(--k)
        {
        	
            n1=mul(n1,k);
        }
        res.push_back(n1);
    }while(--n);
    

	   for(int i=0;i<res.size();i++)
	  {
	       
	       answer=add(answer,res[i]);
	   }
	    reverse(answer.begin(),answer.end());
	   for(auto x:answer) cout<<x;
    
}

在dev-c++上能跑出对的结果, 比如输入3得到9,输入4得到33,但提交的时候是0分。

2025/2/6 16:46
加载中...