好题快递吧 关注:28贴子:201
  • 2回复贴,共1
Description
对于英文文本,某种密码实现方式为:对于明文的每个字母,用字母表中k个字母后的字母来代替(允许循环,也就是说a在z的后面)。比如当k=1时,对一行纯小写字母的文字进行加密的结果为明文中的a在密文中变为b,明文中的b在密文中变为c,……,明文中的z在密文中变为a。 如此,明文caba对应的密文就是dbcb。
Input
输入包括1行,为一个不超过50个字母的字符串和一个整型变量k,空格分隔。
Output
输出包括1行,为加密后的密文。


1楼2016-04-05 20:15回复
    string i;
    int k;
    cin>>i>>k;
    for (int q=0;q<i.length();q++)
    {
    if (i[q]>='a'&& i[q]<='z')
    i[q]=char((i[q]-'a'+k)%26+'a');
    else
    if (i[q]>='A'&&i[q]<='Z')
    i[q]=char((i[q]-'A'+k)%26+'A');
    }


    2楼2016-04-05 20:40
    回复
      或者
      #include<iostream>
      #include<cstdio>
      #include<cstring>
      #include<string>
      using namespace std;
      int main()
      {
      string i;
      int k;
      while (cin>>i>>k)
      {
      for (int q=0;q<i.length();q++)
      {
      if (i[q]>='a'&& i[q]<='z')
      i[q]=char((i[q]-'a'+k)%26+'a');
      else
      if (i[q]>='A'&&i[q]<='Z')
      i[q]=char((i[q]-'A'+k)%26+'A');
      }
      cout<<i;
      }
      system("pause");
      return 0;
      }#include<iostream>
      #include<cstdio>
      #include<cstring>
      #include<string>
      using namespace std;
      int main()
      {
      string i;
      int k;
      while (cin>>i>>k)
      {
      for (int q=0;q<i.length();q++)
      {
      if (i[q]>='a'&& i[q]<='z')
      i[q]=char((i[q]-'a'+k)%26+'a');
      else
      if (i[q]>='A'&&i[q]<='Z')
      i[q]=char((i[q]-'A'+k)%26+'A');
      }
      cout<<i;
      }
      system("pause");
      return 0;
      }


      3楼2016-04-05 20:40
      回复