2021/5/20 招银科技提前批笔试(CPP)

cpp小白面试、笔试记录,欢迎大家交流学习。

第一题

有一种编码传输协议,它的规则是:重新改变字母表顺序进行编码,首先选择一个单词作为秘钥,如PERSONLOAN,如果单词中包含有重复的字母,只保留第一个,其余几个丢弃,按这个单词顺序编写字母表,没有在单词中出现过的字母按元字母表顺序填充完整。现在,重新排序过的字母表,如下所示。
ABCDEFGHIJKLMNOPQRSTUVWXYZ
PERSONLABCDFGHIJKMQTUVWXYZ
在对信息进行编码时,将上面一行字母用下一行对应字母一一取代。因此,使用这个秘钥编码,CMBCHINA就会变为RGERABHP。
说明:秘钥和待加密的内容只会出现大写字母,不会出现其他内容
输入参数:
输入第一行是秘钥,第二行是待加密内容
输出:
加密后的内容

#include
#include
#include
using namespace std;
int main() {string s1;cin >> s1;string s(s1);string s2;cin >> s2;int count = 0;int index = 1;for (int i = s.size() - 1; i >= 0; --i) {for (int j = 0; j < i; ++j) {if (s1[j] == s1[i]) {s1.erase(s1.begin() + i);}}}cout << s1 << endl;string ss = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";for (auto s : s1) {for (int i = 0; i < ss.size(); ++i) {if (s == ss[i]) {ss.erase(ss.begin() + i);}}}cout << ss << endl;string s3(s1 + ss);cout << s3 << endl;for (int i = 0; i < s2.size(); ++i) {s2[i] = s3[s2[i] - 'A'];}cout << s2 << endl;
}

第二题

已知整数X,n,其中X>1,0<=n<10000,请计算Xn=X*X*X*X*X……。限定Xn的结果不会超过100000位,暂不考虑数值过大时的边界一出问题
请在《》补全缺失代码。
注:《》后面为所填代码

#include
using namespace std;
#define MAX 10000
int multiplyBy(int x, int number[], int number_size)
{int carry = 0;for (int i = 0; i < number_size; i++) {int prod = /*《》*/number[i] * x + carry;number[i] = prod % 10;carry = /*《》*/ prod / 10 ;}while (carry){number[number_size]=carry;carry = carry / 10;number_size = /*《》*/number_size + 1;}return number_size;
}
void power(int x, int n) {if (n == 0) {cout << "1";return;}if (x == 0) {cout << "0";return;}int number[MAX];int number_size = 0;int temp = x;while (temp!= 0){number[number_size++] = temp % 10;temp = temp / 10;}cout << number_size << endl;for (int i = 2; i <= n; i++) {number_size = /*《》*/multiplyBy(x, number, number_size);}cout << x << "^" << n << "=";for (int i = number_size - 1; i >= 0; i--)cout << number[i];
}
int main() {int exponent, base;printf("Please enter base:");scanf_s("%id \n", &base);printf("Please enter exponent:");scanf_s("%id", &exponent);power(base, exponent);return 0;
}

第三题

是一个链表题的填空,比较简单,这里就没有写了。


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部