酷代码 AI
菜单
服务商

题目描述 密文是由原文字符串(由不超过 50 个小写字母组成)中每个字母向后移动 𝑛 ( 1 <= 𝑛 <= 25 )  位形成的。 如果n是1的话, a会往后移动一位变成b.... z 会往后移动一位变成 a,如此循环。他现在找到了移动前的原文字符串及 𝑛 ,请你求出密文。 输入 第一行:n。 第二行:未移动前的一串字母为原文 输出 输出密文 样例输入 复制 1 abcz 样例输出 复制 bcda

```python # 读取移动的位数 n n = int(input()) # 读取原文 original_text = input() cipher_text = "" # 遍历原文中的每个字符 for char in original_text: # 计算字符移动后的 ASCII 码值 new_char_ord = ord(char) + n # 如果移动后超出 'z' 的范围,需要循环到 'a' 重新开始 if new_char_ord > ord('z'): new_char_ord -= 26 # 将新的 ASCII 码值转换为字符并添加到密文里 cipher_text += chr(new_char_ord) # 输出密文 print(cipher_text) ``` 代码解释 1. 输入处理: - `n = int(input())`:读取第一行输入并将其转换为整数,这个整数代表每个字母需要向后移动的位数。 - `original_text = input()`:读取第二行输入,这是未移动前的原文。 2. 加密过程: - 使用 `for` 循环遍历原文中的每个字符 `char`。 - `ord(char)` 可以获取字符的 ASCII 码值,将其加上 `n` 得到移动后的 ASCII 码值 `new_char_ord`。 - 当 `new_char_ord` 大于 `ord('z')` 时,说明超出了小写字母 `z` 的范围,需要将其减去 26,实现循环到 `a` 重新开始。 - `chr(new_char_ord)` 将新的 ASCII 码值转换回字符,然后添加到 `cipher_text` 中。 3. 输出结果: - 最后使用 `print(cipher_text)` 输出加密后的密文。 [2025-12-07 17:39:05 | AI问答 | 405点数解答]

相关提问
发财导航,免费问AI
实用工具查看更多