站外题求助
  • 板块学术版
  • 楼主Tania2013
  • 当前回复0
  • 已保存回复0
  • 发布时间2024/8/20 22:16
  • 上次更新2024/8/21 09:42:26
查看原帖
站外题求助
1281317
Tania2013楼主2024/8/20 22:16

题目描述

小K和小A在玩一个勇士决斗的游戏,每位勇士都有一个整数作为战斗力,两人会分别选择一位勇士进行决斗,但这个决斗有着如下的特殊规则:

1、准备阶段

位数较少的战斗力数字前面不断添加前导0使得与另一战斗力数字位数相等

2、决斗阶段

从两个战斗力数字的最低位开始,依次比较对应位上数的大小,较小数则决斗失败,那么该勇士需要删除决斗失败的某位上的数字(如果某位上数相等则为平局不进行任何操作),重复这个过程直到最高位也决斗后结束。

3、展示阶段

将未被删除的数按顺序依次拼接,得到新的战斗力数字,并且展示两位勇士新的战斗力,如果某个战斗力数字在决斗后位数被删空,则展示“Fail”。

例如:两个战斗力分别为4526和65,其决斗过程如下,最后得到456和6 输入描述

输入一行,包含2个整数K和A,表示小K和小A的勇士战斗力数字。

输出描述

输出共两行;

第一行,如果K的位数被删空,输出“Fail”,否则输出决斗后的新战斗力;

第二行,如果A的位数被删空,输出“Fail”,否则输出决斗后的新战斗力。

样例1

输入

4526 65

输出

456

6

样例2

输入

1234 4567

输出

Fail

4567

样例3

输入

800 400

输出

800

0

提示

对于30%的数据,保证K和A由三位数构成; 对于100%的数据,1<=K,A<=10^9。

我的代码

只要输出Fail就什么都输出不了

#include<bits/stdc++.h>
using namespace std;
int a,b;
string k1,k2="",ans1,a1,a2="",ans2;
bool flag=false;
int main()
{
    cin>>a>>b;
    k1=to_string(a);
    a1=to_string(b);
    int lenk=k1.length(),lena=a1.length();
    if(lenk<lena)
    {
        for(int i=1;i<=lena-lenk;i++)
        {
            k1='0'+k1;
        }
        lenk=lena;
    }
    else
    {
        for(int i=1;i<=lenk-lena;i++)
        {
            a1='0'+a1;
        }
        lena=lenk;
    }
    
    for(int i=0;i<lena;i++)
    {
        if(k1[i]-'0'==a1[i]-'0')
        {
            k2+=k1[i];
            a2+=a1[i];
        }
        else if(k1[i]-'0'<a1[i]-'0')
        {
            a2+=a1[i];
        }
        else
        {
            k2+=k1[i];
        }
    }
    int flag=true;
    for(int i=0;i<=k2.length()-1;i++)
    {
        if(k2[i]=='0' && i!=k2.length()-1 && flag==true)continue;
        else 
        {
            ans1+=k2[i];
            flag=false;
        }
    }
    flag=true;
    for(int i=0;i<=a2.length()-1;i++)
    {
        if(a2[i]=='0' && i!=a2.length()-1 && flag==true)continue;
        else 
        {
            ans2+=a2[i];
            flag=false;
        }
    }
    if(k2.size()==0)
    {
        cout<<"Fail";
    }
    else 
    {
        cout<<ans1;
    }
    cout<<endl;
    if(a2.size()==0)
    {
        cout<<"Fail"<<endl;
    }
    else 
    {
        cout<<ans2<<endl;
    }
}
2024/8/20 22:16
加载中...