题目描述
海盗王将自己的宝藏藏在了一个宝箱里,只有一次开锁的机会,密码输错宝箱就会永久锁死。
小明意外的得到了这个宝箱,经过详细的研究,他发现海盗王很喜欢数字129,并且在图书馆里找到了海盗王的一段手稿,上面有一段描述:“那些除不完的数,就是我喜欢的”,然后是一大串包含数字的字符串。于是,小明大胆的猜测,从字符串中提炼所有的数字串,所有数字串对129求余,将这些余数加起来,就是宝箱的密码。
编写程序,输入一个字符串,提取里面所有的完整数字串,对9求余,将所有的余数累加起来输出。
输入输出格式
输入格式:
一行包含多个数字串的字符串(可能有空格)
输出格式:
数字串对129求余,余数相加的结果
输入输出样例
输入样例1:
Love me, love my dog, 54321and678
输出样例1:
45
样例1说明:54321%129=12, 678%129=33, 结果为45。
输入样例2:
hello, 00054321 , my phone is 9910。
输出样例2:
118
样例2说明:
54321%129=12,9910%129=106,结果为118
前面的0对结果没有用
测试点
测试点:5个测试点,每个测试点得20分。
测试限制:每个测试点时间限制1s,内存限制128M。
数据范围:
40%的数据,字符串里的完整数字串长度<=9位
60%的数据,字符串里的完整数字串长度<=19位
100%的数据,字符串里的完整数字串长度<=30位
代码如下:
#include
using namespace std;
string s;
int a[100],last;
bool c(char c){
return c>='0'&&c<='9';
}
int iss(){
int r=0;
for(int i=1;i<=last;i++) r=(10*r+a[i])%129;
return r;
}
int main(){
getline(cin,s);
int sum=0;
for(int i=0;i
if(!c(s[i])) continue;
while(true){
a[++last]=s[i]-'0';
i++;
if(i==s.length() || !c(s[i])) break;
}sum+=iss();
last=0;
}cout< return 0; } 代码供参考,拜拜!



