前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >《2017年内蒙古自治区第十二届大学生程序设计-超级密码》

《2017年内蒙古自治区第十二届大学生程序设计-超级密码》

作者头像
梅花
发布2020-09-28 10:30:51
3180
发布2020-09-28 10:30:51
举报
题目描述

DD小朋友今年三年级,最近,声称设计了一套“超级密码”系统! 说实话,这套所谓的“超级密码”一点也不难: 对于一个给定的字符串,你只要提取其中的数字,然后连在一起构成一个整数,再乘以DD小朋友的幸运数字513,就是解密后的结果了~ 比如,字符串“ads2d4,122”,提取后的整数是24122,然后乘以513,就能得到解密后的结果:12374586。 注:题目保证解密后的结果在32位整数范围。

输入格式

输入首先包括一个正整数N,表示有N组测试用例。 每组数据占一行,包含一个长度不超过30的字符串。

输出格式

请根据题目要求输出解密后的结果,每组数据输出一行。

输入样例 复制
代码语言:javascript
复制
2
ads2d4,122
0023asdf2AA90
输出样例 复制
代码语言:javascript
复制
12374586
11947770



c++  AC代码:
代码语言:javascript
复制
# 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

代码语言:javascript
复制
 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 }
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019-04-09 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 题目描述
  • 输入格式
  • 输出格式
  • 输入样例 复制
  • 输出样例 复制
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档