2018腾讯实习生招聘笔试题

xiaoxiao2021-02-27  158

1 假定一种编码的编码范围是a ~ y的25个字母,从1位到4位的编码,如果我们把该编码按字典序排序,形成一个数组如下: a, aa, aaa, aaaa, aaab, aaac, … …, b, ba, baa, baaa, baab, baac … …, yyyw, yyyx, yyyy 其中a的Index为0,aa的Index为1,aaa的Index为2,以此类推。 编写一个函数,输入是任意一个编码,输出这个编码对应的Index.

输入描述: 输入一个待编码的字符串,字符串长度小于等于100. 输出描述: 输出这个编码的index 示例1 输入 baca 输出 16331 思路:两层for循环,一层编码长度,一层当前位数,找规律发现该编码每次加n*25^j,n是当前位字母编码是第几个,j是当前位数的第几位。 #include <iostream> #include <string> #include <cmath> using namespace std; int main() { string s; cin>>s; int len = s.length(); int index = 0,i,j; for(i = 0; i < len; ++i,++index) { int n = s[i] - 'a'; for(j = 0; j <4-i; ++j) { index += n*pow(25,j); } } cout<<index-1<<endl; cout<<sizeof(A)<<endl; return 0; }

2. 【题目描述】游戏里面有很多各种各样的任务,其中有一种任务玩家只能做一次,这类任务一共有 1024 个, 任务 ID 范围[1,1024].请用 32 个 unsigned int 类型来记录着 1024 个任务是 否已经完成。初始状态为未完 成。 输入两个参数,都是任务 ID,需要设置第一个 ID 的任务为已经完成;并检查第二个 ID 的任务是否已经完 成。 输出一个参数,如果第二个 ID 的任务已经完成输出 1,如果未完成输出 0,。如果第一或第二个 ID 不在 [1,1024]范围,则输出 1. 如: 输入: 1024 1024 输出: 1 测试用例: 1、 输入:1024 1024 输出:1 2、 输入:1024 1023 输出:0 3、 输入:1022 1025 输出:-1 因为一个unsigned int的刚好是32位,32个unsigned int类型刚好是1024位。所以用位运算即可。

#include <bits/stdc++.h> using namespace std; int main() { int a,b; cout<<sizeof(a)<<endl; cin>>a>>b; if(a < 1 || a > 1024 || b < 1 || b > 1024) { cout<<-1<<endl; return 0; } int index,temp; unsigned int count[32] = {0}; index = (a-1)/32; temp = (a-1)%32; count[index] |= 1<<temp; index = (b-1)/32; temp = (b-1)%32; if(count[index] & 1<<temp) cout<<1<<endl; else cout<<-1<<endl; return 0; }

3.质数对 【题目描述】给定一个正整数,编写程序计算有多少对质数的和等于输入的这个正整数,并输

出结果。输入 值小于 1000。如,输入为 10,程序应该输出结果为 2。(共有两对质数的和为 10,分别为(5,5)(3.7))

#include <iostream> #include <cmath> using namespace std; bool IsPrimer(int numbers) { if(numbers <= 1) cout<<"numbers error"<<endl; if(numbers % 2 == 0) return false; for(int i = 3; i <= sqrt(numbers); ++i) { if(numbers%i == 0) return false; } return true; } int main() { int sum = 0; int num; cin>>num; for(int i = 3; i <= num/2; ++i) { if(IsPrimer(i) && IsPrimer(num-i)) sum++; } cout<<sum<<endl; return 0; }
转载请注明原文地址: https://www.6miu.com/read-13519.html

最新回复(0)