官方数据AC,这只过一个点怎么破。。。

一脸懵逼.jpg

update 2楼

2 条评论

  • @ 2016-11-04 20:52:33

    #include<iostream>
    #include<string.h>
    using namespace std;

    const bool capital=true,little=false;

    string password,code;
    bool judge;

    void read()
    {
    int i,j;

    std::ios::sync_with_stdio(false);

    cin>>password>>code;

    for(i = 0; i<password.size(); i++)
    if(password[i]>='a' && password[i]<='z')
    password[i]=password[i]-'a'+'A';

    i=0; j=0;
    while(i<code.size())
    {
    if(code[i]>='a' && code[i]<='z')
    judge=little;
    else
    judge=capital;

    code[i]-=password[j]-'A';

    if(judge==capital && code[i]<'A')
    code[i]+=26;
    else if(judge==little && code[i]<'a')
    code[i]+=26;

    i++; j++;
    if(j>=password.size())
    j%=password.size();
    }

    cout<<code;

    return;
    }

    int main()
    {
    read();
    return 0;
    }
    我就过了

  • @ 2016-07-13 09:03:35

    现在改了还是只有60分。。
    ```c++
    #include<iostream>
    #include<string.h>
    #include<stdio.h>
    using namespace std;
    int main()
    {
    char a[27][27];
    int i,j;
    int k=0;
    char b;
    for(i=0;i<=25;i++)
    {
    for(j=0;j<=25;j++)
    {
    b='A'+j+k;
    if(b>'Z')
    {
    b=b-26;
    }
    a[i][j]=b;
    }
    k++;
    }
    //打表

    //Test
    /* for(i=0;i<=25;i++)
    {
    for(j=0;j<=25;j++)
    {
    cout<<a[i][j];
    }
    cout<<endl;
    }
    */
    char key[110];
    char text[1100];
    int c[1100]={0};

    for(int i=0;i<=109;i++)
    {
    key[i]=0;
    }

    for(int i=0;i<=1050;i++)
    {
    c[i]=0;
    }

    cin>>key;
    cin>>text;
    for(int i=0;i<=109;i++)
    {
    if(key[i]<='z'&&key[i]>='a')
    {
    key[i]=key[i]-32;//小写字母转大写字母要-32;
    }
    }

    for(int i=0;i<=1050;i++)
    {
    if(text[i]<='z'&&text[i]>='a')
    {
    text[i]=text[i]-32;
    c[i]=1;
    }
    }
    //Test
    /* for(int i=0;i<=109;i++)
    {
    cout<<key[i];
    if(key[i]==0)
    break;
    }
    cout<<endl;
    for(int i=0;i<=109;i++)
    {
    cout<<text[i];
    if(text[i]==0)
    break;
    }
    */

    k=0;
    for(i=0;i<=strlen(text)-1;i++)
    {
    if(k==strlen(key))
    {
    k=0;
    }
    for(j=0;j<=26;j++)
    {
    if(a[key[k]-'A'][j]==text[i])
    {
    if(c[i]==1)
    {
    cout<<char(j+'a');

    }
    else
    {
    cout<<char(j+'A');

    }
    }
    }
    k++;
    }

    }
    ```

  • 1

信息

ID
1778
难度
3
分类
模拟 点击显示
标签
递交数
3054
已通过
1490
通过率
49%
被复制
9
上传者