救救#最后一个点TLE了#还有一些小疑问
  • 板块P1303 A*B Problem
  • 楼主syxuu
  • 当前回复1
  • 已保存回复1
  • 发布时间2022/10/28 23:47
  • 上次更新2023/10/27 05:17:16
查看原帖
救救#最后一个点TLE了#还有一些小疑问
815190
syxuu楼主2022/10/28 23:47

大佬求助 最后一个点 TLE了 而且我输入之后需要特判 如果没有那个两个判断 输入0 10会输出00;1 0啥也不输出;

#include<iostream>
#include<cstring>



using namespace std;

string jiafa(string str1,string str2);
string chengfa(string str1,string str2);


int main()
{
    string str1,str2;
    cin>>str1>>str2;
    if(str2[0]=='0')
    cout<<0;
    if(str1[0]=='0')
    {
        cout<<0;
    }
    else{
        cout<<chengfa(str1,str2)<<endl;
    }
    
    return 0;
}

string chengfa(string str1,string str2)
{
    string str;
    int len_1=str1.length();
    int len_2=str2.length();

    

    for(int i=len_2-1;i>=0;i--)
    {
        string  str_m;
        int c =str2[i]-'0';
        for(int j=0;j<str2[i]-'0';j++){
            
            str_m=jiafa(str_m,str1);
            
        }
        str=jiafa(str,str_m);
        str_m='0';
        str1=str1+'0';
    }


    return str;
    
}
string jiafa(string str1,string str2)
{
    string str;
    int len_1=str1.length();
    int len_2=str2.length();

    if(len_1>len_2)
    {
        for(int i=1;i<=len_1-len_2;i++)
        {
            str2='0'+str2;
        }
    }
    else{
        for(int i=1;i<=len_2-len_1;i++){
            str1='0'+str1;
        }
    }

    len_1=str1.length();
    len_2=str1.length();
    int temp;
    int jw=0;
    for(int i=len_1-1;i>=0;i--){
        int a=str1[i]-'0';
        int b=str2[i]-'0';
        char c=str2[i];
        temp=str1[i]-'0'+str2[i]-'0'+jw;
        jw=temp/10;
        temp%=10;
        str=char(temp+'0')+str;

    }
    if(jw!=0){
        str=char(jw+'0')+str;
    }

    return str;
}
2022/10/28 23:47
加载中...