zoukankan      html  css  js  c++  java
  • YTU 2795: 编程题AB-侦察员的密码

    2795: 编程题AB-侦察员的密码

    时间限制: 1 Sec  内存限制: 128 MB
    提交: 155  解决: 43

    题目描述

    侦察员小甲在被捕前在墙上写了两行文字(ASCII字符),其中包含了他获取的敌人密码,破译员琪琪经过3天3夜终于找到了破解方法,请编程帮助琪琪计算密码。
    计算密码方法:只保留两行文字的数字,然后对两行数字从左向右逐位相加,不足位补0,将每位所求和加70得到ASCII,再按照字符输出就是密码。
    例如:以下两行文字  
    <mary303>and<kitty739>
    !!76$$=(50){%;%}?>
    提取数字逐位相加
      3  0  3  7   3  9 
      7  6  5  0 
    =============
     10  6  8  7   3  9
    逐位加70得到ASCII序列
     80 76 78 77 73 79
    对应的密码是  PLNMIO

    输入

    两行字符序列(每行不超过80个字符)

    输出

    一行密码

    样例输入

    <mary303>and<kitty739>
    !!76$$=(50){%;%}?>

    样例输出

    PLNMIO

    你  离  开  了  ,  我  的  世  界  里  只  剩  下  雨  。  。  。

    #include <iostream>
    #include <cstring>
    #include <cstdio>
    using namespace std;
    int main()
    {
        char a[80], b[80], c[80], d[80];
        int n = 0, m = 0;
        memset(a, '0', 80);
        memset(b, '0', 80);
        memset(c, '0', 80);
        memset(d, '0', 80);
        gets(a);
        gets(b);
        int i = 0;
        while (a[i] != '')
        {
            if (a[i] >= '0' && a[i] <= '9')
            {
                c[n] = a[i];
                n++;
            }
            i++;
        }
        i = 0;
        while (b[i] != '')
        {
            if (b[i] >= '0' && b[i] <= '9')
            {
                d[m] = b[i];
                m++;
            }
            i++;
        }
        if (n < m)n = m;
        for (i = 0; i < n; i++)
            cout << char(int((c[i]+d[i]-2*48)+70));
        return 0;
    }
    

  • 相关阅读:
    某些电脑前面板没声音问题
    安装win10笔记
    linux 时区问题
    JS实现网页飘窗
    缓存promise技术不错哦
    wepy相关
    生成keystore
    2017年终巨献阿里、腾讯最新Java程序员面试题,准备好进BAT了吗
    细思极恐-你真的会写java吗
    年终盘点:Java今年的大事记都在这里!
  • 原文地址:https://www.cnblogs.com/im0qianqian/p/5989556.html
Copyright © 2011-2022 走看看