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

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.

tui nghĩ câu 3 là 0 vì nó để là con đó có thể đẻ chứ đâu có đẻ ra trứng !

Câu 1 dùng vét cạn hoặc thuật toán sinh hoán vị ( mình dùng vét cạn)

#include<iostream>
#include <stdio.h>
#include <conio.h>
#include <string>
using namespace std;
int lenght;
char xau[1000];
char c_xau[1000];
bool trangthai[1000];
void InHoanVi()
{
	for (int i = 0; i < lenght; i++)
	{
		cout << c_xau[i];
	}
	cout << endl;
}
bool KiemTra(char kt,int vt)
{
	for (int i = 0; i < vt;i++)
	{
		if (kt == c_xau[i])
		{
			return false;
		}
	}
	return true;
}
void DeQuyHoanVi(int j)
{
	for (int i = 0; i < lenght;i++)
	{
		if (j < lenght && KiemTra(xau[i],j))
		{
			c_xau[j] = xau[i];
			if (j == lenght - 1)
			{
				InHoanVi();
			}
			DeQuyHoanVi(j + 1);
		}
	}
}

void main()
{
	for (int i = 0; i < 1000;i++)
	{
		trangthai[i] = true;
	}
	cout << "Moi ban nhap vao xau ki tu : ";
	gets_s(xau);
	lenght = strlen(xau);
	DeQuyHoanVi(0);
	gets_s(xau);
}
2 Likes

câu 2 bác làm không đúng

Bài 2 :

#include <iostream>
using namespace std;
char xau[][14]{"ES", "Hi", "Blalba", "Xin", "Chao", "Cac", "Ban", "Toi", "La", "Son", "He", "He", """" };
char *someshit(int someOtherShit)
{
	return xau[someOtherShit];
}
void main()
{
	someshit(0);
}

sizeof(stringInput)*giaithua(sizeof(stringInput));

Vì case không có break nên để giử nguyên ý nghĩa đoạn code mà tăng tốc độ thực thi. Ta giữ nguyên đoạn code :sunglasses:

:laughing: :laughing: :laughing:

1 Like

viết method tạo 1 ma trận xoắn ốc …

1 Like

câu 1 các bạn làm căng vl
next_permutation là ra

Thêm 1 câu nữa nè :smiley:
1
1 1
2 1
1 2 1 1
1 1 1 2 2 1
?
Tìm các số hàng cuối ( Đề chỉ như thế ko cho biết gì thêm )

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