[SHARE] Câu hỏi tuyển dụng của GameLoft

Em sưu tầm được 3 câu này trên group facebook C++ Game Developer nên chia sẻ cho mọi người cùng xem :slight_smile:

câu 1

: viết 1 hàm xử lý 1 chuỗi ký tự ( a-> z only ) sau đó hàm đó sẽ làm công việc như vầy , ví dụ input vào chữ “eat” ,
thì sẽ in ra (size của ký tự dc giai thừa ) tức 3! = 6 chữ :
"eat " , "eta " , “tea” , “tae” , “ate” , “aet”

câu 2

: dựa vào khả năng hiểu biết C++ , em hãy optimize đoạn code sau
char *someshit(int someOtherShit)
{
switch(someOtherShit)
{ case 1 : return “ES”;
case 2 : return “HI” ;
(lặp lại tới case 13 với random ký tự )
case 14: return “”;
default return 0;
}
}
###câu 3
a peacock can lay 1 egg on day 1 , lay 2 eggs on day 2 . how many egg will this peacock lays in day 3 .
a . 0
b . 1
c . 2
d . 3

10 Likes

câu 3 sao xàm vậy, kq ko lẽ là 3 :joy:

Có gì đó hack não chăng :v

some shit =))))) bựa bựa

Khó quá :slight_smile: Câu 3 chọn đại chắc đúng đc 1 câu.

em nghĩ là 0 vì dù trước đó có đẻ dc bnhiu quả thì hôm nay nó đẻ bnhiu quả vẫn ko thể pjk dc :3 ko pjk thì lập trình thường mặc định = 0 or giá trị rác v nên em chọn a

Câu 3 mình nghĩ để test xem cách suy luận thôi :penguin:
Chắc kiểu phải giải thích được suy luận hợp lý của câu mình chọn.

1 Like

Vì là how many “egg” nên chỉ có thể là 1.

1 Like

Là con công ĐỰC thì làm gì đẻ được :sweat_smile:

Câu 1: Tham khảo:


1 Like

Ngày 1 ấp 1 trứng, ngày 2 ấp 2 trứng (1 trứng đã có từ ngày hôm trước), cho nên mỗi ngày chỉ ấp được một trứng. Câu trả lời cuối cùng là ngày 3 ấp được 1 trứng (câu b).

P/s sao không ai trả lời câu 1 với câu 2 đi =))

Câu 2 chắc check if(someOtherShit >14 || someOtherShit < 0) return 0; bỏ cái default đi :v

Câu 1 viết bình thường
Câu 2 chuyển qua dùng enum để dễ optimust và maintain
Câu 3. how many egg will this peacock lays IN day 3. -> 1 quả

1 Like

Câu 2:

char *someshit(int someOtherShit)
{
    return "You gave me ur shit. Here is my SHIT!";
}

Peacock là con công đực, còn peahen mới là con công cái nên chắc ghi vào đáp án là đề sai quá =))

câu 3 :là đáp án a = 0 nhé => vì peacock là con công đực , peahen mới là con công cái => công đực làm méo j đẻ trứng :joy:

Câu 2 mình ko biết trong C++ có break ko mà sao ko thấy sau mỗi cái case có 1 cái break nhỉ ?

1 Like

Có return nó kết thúc hàm rồi bác

Câu 1: dùng thuật toán backtrack tính ra các permutation. (khá đơn giản với những ai biết backtrack)
Cây 2: khai báo 1 array là input[15] chứa các giá trị random kí tự.
char *someshit(int someOtherShit){
return *(input + someotherShit);
}
Câu 3: câu này viết sai chính tả nhiều quá. thôi cứ cho là bạn này viết sai vậy. câu này mình nghĩ chọn đáp án nào cũng được, không hề có quy luật nào ở đây cả.

2 Likes

Bài 1 dùng next_permutation là ra. @@

break để gặp case là nó đi ra luôn, không cần phải kiểm tra case khác nữa.

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?