为什么60分??

P1914 小书童——凯撒密码

yiwenyu_niu_bi @ 2022-03-30 13:45:45

为什么60分?? 为什么60分??


by Pretharp @ 2022-03-30 14:16:23

@yiwenyu_niu_bi 建议自删


by chs_is_sb @ 2022-03-30 14:17:04

@yiwenyu_niu_bi 大于z需要%26可能加了10000


by 叶家诚666666 @ 2022-04-04 20:54:08

@yiwenyu_niu_bi 因为你没有考虑换一档 比如输入

1
z

那它要输出a 你的因该是输出了ASCLL码122位的后一位

{

而不是

a

所以要分类讨论 希望能对你有帮助!!!


by 叶家诚666666 @ 2022-04-04 20:55:36

@叶家诚666666 这是我的代码: 我用的是python 如果你学过的话可以借鉴一下哦:

n = int(input())
m = input()
x = ""
for i in range(len(m)):
    if (ord(m[i]) + n) > 122:
        x += chr(ord(m[i]) + n - 26)
    else:     
        x += chr(ord(m[i]) + n)
print(x)

by yiwenyu_niu_bi @ 2022-04-11 12:33:55

#include<bits/stdc++.h>
using namespace std;
int main()
{
    int a,i=0;
    string b;
    cin>>a;
    cin>>b;
    while(i<b.size())
    {
        b[i]+=a;
        if(b[i]>122)
        {
            b[i]-=26;
        }
        i++;
    }
    cout<<b; 
    return 0;
}

by yiwenyu_niu_bi @ 2022-04-11 12:34:44

我用的C++


by suyi1111 @ 2022-04-30 16:27:39

ASCII码上限127,z的ASCII码为122,如果b[i]+=a;时加出了ASCII码的范围就会WA,可以改为:

for(int j=1;j<=a;j++){

b[i]++;

if(b[i]>'z') b[i]-=26;

}


by HaoxuanLiu @ 2022-05-06 13:49:17

楼主的答案.......


by HaoxuanLiu @ 2022-05-06 13:50:12

好厉害


by yiwenyu_niu_bi @ 2022-06-08 12:27:04

高精度,散了吧 (蓝名蒟蒻)


上一页 |