【题目简述】:由问题的规则,确定 ‘?’的值是什么
【分析】:一个trick,注意这句话Multiply the digits from back to front (!) with repeating factors 9, 3, 7.
所以给我们的9、3、7是倒着与数组中的数相乘的。
详见代码:
//216K 485Ms
#include<iostream>
using namespace std;
char str[10];
int a[3] = {9,3,7};
int main()
{
int t;
int tmp;
int tmp2;
int count = 1;
cin>>t;
while(t--)
{
int sum = 0;
int p = 0; // 用来描述a数组的下标
cin>>str;
int len = strlen(str);
for(int i = len-1;i>=0;i--)
{
if(str[i] == '?')
{
tmp = i; // 记录此时的i的值
tmp2 = a[p]; // 记录此时对应的a[i] 的值
}
else
sum += a[p] * (str[i] - '0');
p++;
if(p == 3)
p = 0;
}
for(int i = 0;i<10;i++)
{
if((sum+tmp2*i)%10 == 0)
str[tmp] = i+'0';
}
cout<<"Scenario #"<<count<<":"<<endl;
cout<<str<<endl<<endl;
count++;
}
return 0;
}