DD小朋友今年三年级,最近,声称设计了一套“超级密码”系统! 说实话,这套所谓的“超级密码”一点也不难: 对于一个给定的字符串,你只要提取其中的数字,然后连在一起构成一个整数,再乘以DD小朋友的幸运数字513,就是解密后的结果了~ 比如,字符串“ads2d4,122”,提取后的整数是24122,然后乘以513,就能得到解密后的结果:12374586。 注:题目保证解密后的结果在32位整数范围。
输入首先包括一个正整数N,表示有N组测试用例。 每组数据占一行,包含一个长度不超过30的字符串。
请根据题目要求输出解密后的结果,每组数据输出一行。
2
ads2d4,122
0023asdf2AA90
12374586
11947770
c++ AC代码:
# include <iostream>
# include <string>
# include <math.h>
using namespace std;
int getNumber(string content){
int array[40];
bool flag = false;
int flag_index = -1;
int sum = 0;
int count = 0;
for(int i = 0;i<content.length();i++)
{
if(content[i]>=48&&content[i]<=57){
array[count] = content[i]-48;
count++;
}
}
if(array[0]!=0){
flag = true;
}
if(flag){
int temp =count;
for(int n = 0;n<count;n++){
temp--;
sum += array[n]*pow(10,temp);
}
}
else{
for(int m = 0;m<count;m++){
if(m!=0){
flag_index= m;
break;
}
}
int temp = count - flag_index;
for(int index = flag_index;index<count;index++){
temp--;
sum += array[index]*pow(10,temp);
}
}
return sum*513;
}
int main(){
int n;
cin>>n;
for(int i =0;i<n;i++){
string content;
cin>>content;
cout<<getNumber(content)<<endl;
}
return 0;
}
Java 代码实现 已AC
1 import java.util.Scanner;
2
3 public class Main {
4
5 public static int getResult(String content){
6
7 int result = 0;
8 for(int i = 0;i<content.length();i++){
9 if(content.charAt(i)>='0'&&content.charAt(i)<='9')
10 {
11 result=result*10+content.charAt(i)-48;
12 }
13 }
14 return result*513;
15 }
16
17 public static void main(String[] args) {
18 Scanner cin = new Scanner(System.in);
19 int n = cin.nextInt();
20 for(int count = 0;count<n;count++){
21 String content = cin.next();
22 System.out.println(getResult(content));
23 }
24 }
25
26 }