• 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;
    }
    

  • 相关阅读:
    terraform入门操作指南
    linux常用命令
    pssh用法范例
    nginx共享内存使用
    Redis监控指标[转]
    xargs用法笔记
    systemd用法记录一
    esxcli部分常用命令
    lua自定义功能模块table类型转string类型
    curl用法笔记
  • 原文地址:https://www.cnblogs.com/im0qianqian/p/5989556.html
Copyright © 2020-2023  润新知