原题链接:[编程入门]密码破译
解题思路:
方法一:利用ASCII码是连续的直接解题,对字符的ASCII码进行加减从而改变字符
方法二:把26个字母的ASCII码变成循环,...->Y->Z->A->B->...,通过找到换位后字符在26个字母中的位置+ASCII码是连续的来进行
注意事项:
参考代码:
#include<bits/stdc++.h> using namespace std ; int main( ) { string a = "China" ; int num = a.size() ; for ( int i = 0 ; i < num ; i ++ ) { // 方法一 // if ( ( a[i]>='W' && a[i] <= 'Z' ) || ( a[i] >= 'w' && a[i] <= 'z' ) ) // { // a[i] -= 22 ; // } // else a[i] += 4 ; //方法二 if ( a[i] >= 'A' && a[i] <= 'Z' ) a[i] = ( a[i] + 4 - 'A' ) % 26 + 'A' ;
else a[i] = ( a[i] + 4 - 'a' ) % 26 + 'a' ;
} cout << a << endl ; return 0 ; }
0.0分
0 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复