社区讨论

求dalao帮助,不知道这么写哪错了

P1079[NOIP 2012 提高组] Vigenère 密码参与者 17已保存回复 16

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
16 条
当前快照
1 份
快照标识符
@lymsltz8
此快照首次捕获于
2024/07/15 17:39
2 年前
此快照最后确认于
2025/11/20 06:45
4 个月前
查看原帖
大体思路就是用两个指针使密文和密匙对应起来然后利用规律求出明文
CPP
#include<iostream>
using namespace std;
string key,puz;
int i,j;
int main()
{
    cin>>key>>puz;
    for(i=0,j=0;i<puz.length();i++,j++)
    {
        if(j==key.length()) j=0; 
        if(key[j]>='a'&&key[j]<='z')//如果密文是小写字母
        cout<<char(puz[i]-key[j]+'a');//规律就是  明文=密文-密匙+'a'(小写的时候)
        else 
        if(key[j]>='A'&&key[j]<='Z')//如果密文是大写字母
        cout<<char(puz[i]-key[j]+'A');//规律同小写
    }
    return 0;
}

回复

16 条回复,欢迎继续交流。

正在加载回复...