昨天参加了今年的天梯赛,这个是在天梯赛之前练的题,天梯赛类似的字符串处理的题出了一些,可以说是非常热爱字符串了...
这个题还是非常简单,用简单的字符串知识就可以,主要是将数字的合成起来,并且通过小数点等符号设置flag判断
在这里还顺便吐槽下天梯赛那个AI的题,说的感觉有些不太清楚,也可能是我太菜了..那个could you can you转I can I could,还有I me转you 我有些没理解,最后做了一万年得了两分也是很伤心...
#include <iostream>
#include <cstring>
using namespace std;
int main(void)
{
char s[100005];
cin.getline(s,100005);
int len = strlen(s);
int t1=0;
int t2 = 0;
int flag = 1;
int flagt1 = 1;
int flagt2 = 1;
for(int i=0;i<len;i++)
{
if(s[i]==' ')
{
flag = 0;
continue;
}
if(flag==1)
{
if(s[i]>='0'&&s[i]<='9')
{
t1 = t1*10 + s[i]-'0';
}
else
{
flagt1 = 0;
}
}
else if(flag==0)
{
if(s[i]>='0'&&s[i]<='9')
{
t2 = t2*10 + s[i]-'0';
}
else
{
flagt2 = 0;
}
}
}
if(!(t1>=1&&t1<=1000))
{
flagt1 = 0;
}
if(!(t2>=1&&t2<=1000))
{
flagt2 = 0;
}
if(flagt1==1&&flagt2==1)
{
printf("%d + %d = %d\n",t1,t2,t1+t2);
}
else if(flagt1==1&&flagt2==0)
{
printf("%d + ? = ?\n",t1);
}
else if(flagt1==0&&flagt2==1)
{
printf("? + %d = ?\n",t2);
}
else if(flagt1==0&&flagt2==0)
{
printf("? + ? = ?\n");
}
}