点4数据是多少啊?一直过不了qwq

P1914 小书童——凯撒密码

朱雯萱 @ 2021-09-14 21:16:27

#include<iostream>
using namespace std;
int main(){
    int n;
    char a[100];
    cin>>n>>a;
    int i=0;
    while(a[i]!='\0'){
        if(a[i]=='z'){
            a[i]=='a';
        }else{
            a[i]=(a[i]-'a'+n)%26+'a';
        }
        i++;
    }
    cout<<a;
    return 0;
} 

by Carnival @ 2021-09-14 21:24:39

你想一下当 n = 2,S = \text{zzz} 时,应该输出什么?


by leo888 @ 2021-09-14 21:26:41

请问你有一道黑题怎么做对的?(抄题解小心CTJ!!!)


by leo888 @ 2021-09-14 21:27:38

@朱雯萱

而且你这个要判断是否该数有没有越界?


by leo888 @ 2021-09-14 21:29:24

@朱雯萱

%26应该会出bug的,建议一次一次增,遇到z就变成a就行了

人生建议:(不要抄黑题!)


by 朱雯萱 @ 2021-09-14 21:50:15

@leo888 感谢

#include<iostream>
using namespace std;
int main(){
    int n;
    char a[100];
    cin>>n>>a;
    int i=0;
    for(int i=0;a[i]!='\0';i++){
        if(a[i]>='z'){
            a[i]=a[i]-26+n;
        }else{
            a[i]=(a[i]-'a'+n)%26+'a';
        }
    }
    cout<<a;
    return 0;
} 

这个代码80分,现在是五点过不去了。。。


by leo888 @ 2021-09-14 21:51:36

eeeeeeeee


by leo888 @ 2021-09-14 21:53:59

你康康我的吧

for(i=0;i<s.size();++i)
    {
        for(j=1;j<=n;++j)//重复n次
        {
            ++s[i];//每次就+1
            if(s[i]>'z')s[i]='a';//如果是z的话就变为a
        }
    }

这是核心代码(字符串做的)(字符数组把s.size()改成strlen(s)就行)


by leo888 @ 2021-09-14 21:54:26

@朱雯萱 放心,这不会爆的


by 朱雯萱 @ 2021-09-15 20:05:56

@leo888 唔

谢谢


|