杭电1287(接异或篇)

来源:互联网 发布:天下网商招聘php 编辑:程序博客网 时间:2024/05/17 09:02

上链接:杭电1087


题目大意:

加密的方法是:只用一个大写字母和原文进行异或运算生成密文。输入密文输出原文


思路:

a^b=c;a^c=b;b^c=a

通过这个思路可以得出用于加密的大写字母


贴代码:

#include <cstdio>using namespace std;int main(){    int n;    while(scanf("%d", &n) != EOF)    {        int a[5001];        char b[5001] = {0};        for(int i=0; i<n; ++i)            scanf("%d", &a[i]);        for(int i='A'; i<='Z'; ++i)        {            int j;            for(j=0; j<n; ++j)            {                b[j] = i^a[j];                if(b[j] < 'A' || b[j] > 'Z')                    break;            }            if(j == n) break;        }        printf("%s\n", b);    }    return 0;}

注意事项:
在循环内对数组清0,否则一开始是30后来是10就会出现错误


0 0