2018テンセント実習生募集筆記試験問題
6059 ワード
1符号化の符号化範囲がa~yの25文字、1ビットから4ビットの符号化であると仮定し、この符号化を辞書順に並べ替えると、a,aaa,aaaaa,aaab,aaac,...,b,baa,baaa,baab,baac,...,yyyw,yyyyx,yyyyyのうちaのIndexは0,aaaのIndexは1,aaaのIndexは2となる配列を形成する.関数を記述する、入力は任意の符号化であり、この符号化に対応するIndexを出力する.
2.「タイトルの説明」ゲームには様々なタスクがあり、そのうち1つのタスクプレイヤーは1回しかできないが、これらのタスクは全部で1024個あり、タスクIDの範囲[1024].32個のunsigned intタイプで1024個のタスクが完了したかどうかを記録してください.初期状態は未完了です.2つのパラメータを入力し、いずれもタスクIDであり、最初のIDを設定する必要があるタスクはすでに完了している.2番目のIDのタスクが完了しているかどうかを確認します.2番目のIDのタスクが出力1を完了した場合、出力0が完了していない場合、パラメータを出力します.第1又は第2のIDが[1024]の範囲外である場合、出力1.例えば、入力:1024 1024出力:1試験例:1、入力:1024出力:1 2、入力:1024出力:0 3、入力:1022 1025出力:-1 unsigned intが32ビットであるため、32 unsigned intタイプが1024ビットである.だからビット演算でいいです.
3.质数対【题目说明】正の整数を与えて、编纂プログラムはどれだけ质数の和が入力したこの正の整数に等しいかを计算して、そして负けます
結果が出る.入力値は1000未満です.例えば、入力が10の場合、プログラムは結果を2に出力すべきである.(合計2対の質量数の和は10であり,それぞれ(5,5)(3.7))
:
, 100.
:
index
1
baca
16331
: for , , , n*25^j,n ,j 。
#include
#include
#include
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<1<cout<<sizeof(A)<return 0;
}
2.「タイトルの説明」ゲームには様々なタスクがあり、そのうち1つのタスクプレイヤーは1回しかできないが、これらのタスクは全部で1024個あり、タスクIDの範囲[1024].32個のunsigned intタイプで1024個のタスクが完了したかどうかを記録してください.初期状態は未完了です.2つのパラメータを入力し、いずれもタスクIDであり、最初のIDを設定する必要があるタスクはすでに完了している.2番目のIDのタスクが完了しているかどうかを確認します.2番目のIDのタスクが出力1を完了した場合、出力0が完了していない場合、パラメータを出力します.第1又は第2のIDが[1024]の範囲外である場合、出力1.例えば、入力:1024 1024出力:1試験例:1、入力:1024出力:1 2、入力:1024出力:0 3、入力:1022 1025出力:-1 unsigned intが32ビットであるため、32 unsigned intタイプが1024ビットである.だからビット演算でいいです.
#include
using namespace std;
int main()
{
int a,b;
cout<<sizeof(a)<cin>>a>>b;
if(a < 1 || a > 1024 || b < 1 || b > 1024)
{
cout<1<return 0;
}
int index,temp;
unsigned int count[32] = {0};
index = (a-1)/32;
temp = (a-1)%32;
count[index] |= 1<1)/32;
temp = (b-1)%32;
if(count[index] & 1<cout<<1<else
cout<1<return 0;
}
3.质数対【题目说明】正の整数を与えて、编纂プログラムはどれだけ质数の和が入力したこの正の整数に等しいかを计算して、そして负けます
結果が出る.入力値は1000未満です.例えば、入力が10の場合、プログラムは結果を2に出力すべきである.(合計2対の質量数の和は10であり,それぞれ(5,5)(3.7))
#include
#include
using namespace std;
bool IsPrimer(int numbers)
{
if(numbers <= 1)
cout<<"numbers error"<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<return 0;
}