#P2498. StuPId

    ID: 1499 传统题 1000ms 256MiB 尝试: 2 已通过: 1 难度: 10 上传者: 标签>其他数学TUD Programming Contest 2005 (Training Session)DarmstadtGermany

StuPId

描述

背景

在梦幻理工大学(DUT,Dreamland University of Technology),所有学生都有个人ID,这些ID是六位数或七位数。但这些数字并非普通数字,只有校验和的最后一位为零的ID才是有效ID。

问题

计算ID号码校验和的方法如下:从后向前(!)将ID号码的每一位数字与重复的因子9、3、7相乘,然后将这些乘积相加。例如: ID号码:1 3 9 0 2 7 2 因子:9 7 3 9 7 3 9 乘积:9 21 27 0 14 21 18 这里的校验和为9+21+27+0+14+21+18=1109 + 21 + 27 + 0 + 14 + 21 + 18 = 110。最后一位是零,所以这个ID是有效的。有时学生的书写非常潦草,助教很难识别ID。在特殊情况下,即恰好有一位数字难以辨认时,需要你提供帮助。在这种情况下,可以计算出缺失的数字(由于9、3和7与10互质,所以总是恰好有一个正确的数字)。请注意,学生一开始总是比较专注,所以ID的首位数字总是清晰可读的(且不为零)。

输入

第一行包含测试用例的数量。每个测试用例占一行,包含一个六位数或七位数的ID号码,其中有一位数字被问号“?”代替。

输出

每个测试用例的输出以一行“Scenario #i:”开头,其中ii是从1开始的测试用例编号。然后打印一行包含正确的ID号码。每个测试用例的输出以一个空行结束。

输入数据1

4
13?0272
3?5678
345?78
314?592

输出数据1

Scenario #1:
1390272

Scenario #2:
335678

Scenario #3:
345778

Scenario #4:
3146592

提示

输入和输出数据量巨大,建议使用scanf和printf。

来源

2005年德国达姆施塔特工业大学编程竞赛(训练赛)