为什么一直是80分。。。。

P1914 小书童——凯撒密码

Bulalala @ 2016-11-01 15:59:45

#include<string.h>
main()
{   long long n,x,i;
    char str[10000];
    scanf("%lld\n",&n);
    gets(str);
    x=strlen(str);
        while(n>=26)
        n=n-26;
    for(i=0;i<=x-1;i++)
    {
        str[i]+=n;
        if(str[i]>122)
            str[i]-=26;
        if(str[i]<97)
            str[i]+=26;
    }
    puts(str);
}

by 饮溪 @ 2016-11-02 10:27:34

_嗯嗯,为毛我也是80分?_

var
    n,i:longint;
    st:ansistring;
begin
    readln(n);
    n:=n mod 26;
    readln(st);
    for i:=1 to length(st) do
    begin
        if st[i]='z' then
            if n=0 then st[i]:=st[i]
                else st[i]:=chr(ord('a')+n-1)
        else st[i]:=chr(ord(st[i])+n);
    end;
    for i:=1 to length(st) do write(st[i]);
end.

by 中2少年雷耶斯 @ 2016-11-02 22:39:23

第四个点:

输入 25 abcxyz

输出 zabwxy

@Bulalala @Sure


by Bulalala @ 2016-11-13 23:56:39

这个是不是因为ASCⅡ码表长度的问题,


by cwz2333 @ 2017-01-09 16:24:07

超过ASCⅡ码范围了


|