水題,只要分析好所有的情況就很好做的。
#include<iostream>
#include<string>
using namespace std;
string s1,s2;
int main()
{
while(cin>>s1)
{
if(s1[0]=='#')
break;
cin>>s2;int count =0;
int n = s1.length();
for(int i=0;i!=n;i++)
{
if(s1[i] < s2[i] && s1[i]!='?')
{
break;
}
if(s1[i]=='?')//出現問號的情況
{
int buff = '9' - s2[i];
for(int j=i+1;j!=n;j++)
if(s1[j]=='?')
buff*=10;
count+=buff;
}
if(s1[i]==s2[i])//兩數相等,繼續計算下一個
continue;
if(s1[i]>s2[i]&&s1[i]!='?')//X大於W的情況,count等於10乘以之後問號個數
{
int buff = 1;
for(int j=i+1;j!=n;j++)
{
if(s1[j]=='?')
buff*=10;
}
count+=buff;
break;
}
}
cout<<count<<endl;
}
return 0;
}