人类's burden 2023-07-18 18:12 采纳率: 100%
浏览 23
已结题

关于#c++#的问题,请各位专家解答!

在密码学中,恺撒密码,或称恺撒加密、恺撒变换、变换加密,是一种最简单且最广为人知的加密技术。它是一种替换加密的技术,明文中的所有字母都在字母表上向后(或向前)按照一个固定数目进行偏移后被替换成密文。例如,当偏移量是3的时候,所有的字母A将被替换成D,B变成E,Z变成C,a变成d,x变成a,以此类推。这个加密方法是以罗马共和时期恺撒的名字命名的,当年恺撒曾用此方法与其将军们进行联系。

现在规定偏移量大小为n(1≤n≤25),每个样例提供一个字母给你进行加密,你需要输出加密后得到的字母。

输入格式
输入偏移量n(正数)和要加密的字符(注意区分大小写),中间用空格隔开。

输出格式
输出凯撒加密后的字符。

样例输入1
3 a

样例输出1
d

样例输入2
5 C

样例输出2
H

样例输入3
1 Z

样例输出3
A

img

  • 写回答

3条回答 默认 最新

  • a5156520 2023-07-18 19:13
    关注

    直接使用if来判断吧。

    代码如下:

    
    #include <stdio.h>
    
    int main(void){
        
        char ch,result;
        int offset;
        scanf("%d %c",&offset,&ch);
        
        if(ch>='a'&&ch<='z'){  //  如果是小写字母 
            
            result = ch + offset; //  输入的字符加上偏移 
            if(result>'z'){  // 如果偏移后的ASCII码大于'z' 
                result = 'a'+result-'z'-1;  // 则计算出距离'a'偏移量后,再加上'a' 
            } 
            
        }else if(ch>='A'&&ch<='Z'){  //  如果是大写字母 
            result = ch + offset;   // 同上, 输入的字符加上偏移 
            if(result>'Z'){   // 如果偏移后的ASCII码大于'Z' 
                result = 'A'+result-'Z'-1;  // 则计算出距离'A'偏移量后,再加上'A' 
            } 
        }
        
        // 打印结果 
        printf("%c",result);
        
        return 0;
    } 
    
    

    img

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 7月26日
  • 已采纳回答 7月18日
  • 创建了问题 7月18日

悬赏问题

  • ¥15 phython如何实现以下功能?查找同一用户名的消费金额合并—
  • ¥15 孟德尔随机化怎样画共定位分析图
  • ¥18 模拟电路问题解答有偿速度
  • ¥15 CST仿真别人的模型结果仿真结果S参数完全不对
  • ¥15 误删注册表文件致win10无法开启
  • ¥15 请问在阿里云服务器中怎么利用数据库制作网站
  • ¥60 ESP32怎么烧录自启动程序
  • ¥50 html2canvas超出滚动条不显示
  • ¥15 java业务性能问题求解(sql,业务设计相关)
  • ¥15 52810 尾椎c三个a 写蓝牙地址