#include<iostream>
using namespace std;
int main(){
int t, testCase, i, v[3] = {9, 3, 7};
char num[10];
scanf("%d", &testCase);
for(t = 1; t <= testCase; t ++){
scanf("%s", num);
int sum = 0, p = 0, w, k;
for(i = strlen(num)-1; i >= 0; i --){
if(num[i] == '?'){
w = v[p]; // 记录问号对应的权值。
k = i; // 记录问号的位置。
}
else sum += (num[i]-'0') * v[p];
p ++;
if(p == 3) p = 0;
}
for(i = 0; i < 10; i ++)
if((sum+i*w) % 10 == 0){
num[k] = '0'+i;
printf("Scenario #%d:\n%s\n\n", t, num);
break;
}
}
return 0;
}poj 2498 StuPId
本文介绍了一个使用C++编写的程序,该程序能够解析一种特殊的加密数字字符串,并通过算法计算出未知数字以使整个表达式的值能被10整除。通过分析输入的数字串并处理其中的问号来找出合适的数字填入。

被折叠的 条评论
为什么被折叠?



