内存限制:128 MB时间限制:1 S标准输入输出
题目描述
DD小朋友今年三年级,最近,声称设计了一套“超级密码”系统!
说实话,这套所谓的“超级密码”一点也不难:
对于一个给定的字符串,你只要提取其中的数字,然后连在一起构成一个整数,再乘以DD小朋友的幸运数字513,就是解密后的结果了~
比如,字符串“ads2d4,122”,提取后的整数是24122,然后乘以513,就能得到解密后的结果:12374586。
注:题目保证解密后的结果在32位整数范围。
输入格式
输入首先包括一个正整数N,表示有N组测试用例。
每组数据占一行,包含一个长度不超过30的字符串。
输出格式
请根据题目要求输出解密后的结果,每组数据输出一行。
输入样例 复制
2
ads2d4,122
0023asdf2AA90
输出样例 复制
12374586
11947770
代码:
# 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 代码:
import java.util.Scanner;
public class Main
{
public static int getResult(String content)
{
int result = 0;
for(int i = 0;i<content.length();i++)
if(content.charAt(i)>='0'&&content.charAt(i)<='9')
result=result*10+content.charAt(i)-48;
return result*513;
}
public static void main(String[] args)
{
Scanner cin = new Scanner(System.in);
int n = cin.nextInt();
for(int count = 0;count<n;count++)
{
String content = cin.next();
System.out.println(getResult(content));
}
}
}