โจทย์ทั้งหมด
ง่าย 0 ข้อที่แก้แล้ว อัตราผ่าน 0%

การเพิ่มจำนวนเมล็ดข้าวบนกระดานหมากรุก

คำนวณจำนวนเมล็ดข้าวบนช่องที่ระบุ และผลรวมของเมล็ดข้าวบนทั้ง 64 ช่อง

ช่องที่ 1 มีเมล็ดข้าว 1 เมล็ด ช่องถัดไปแต่ละช่องจะมีเมล็ดข้าวเป็นสองเท่าของช่องก่อนหน้า ให้คืนค่าจำนวนเมล็ดข้าวบนช่องที่ระบุ และผลรวมของเมล็ดข้าวบนช่องที่ 1 ถึง 64 ให้แสดงแต่ละจำนวนเป็นข้อความเลขฐานสิบ เพราะผลรวมของทั้งกระดานมีค่ามากเกินกว่าที่จะเก็บใน signed 64-bit integer ได้

ให้เขียนฟังก์ชัน chessboard_grains(square)

อินพุต

square: ช่องที่ต้องการ โดยเริ่มนับจาก 1

เอาต์พุต

คืนค่าข้อความเลขฐานสิบสองค่า: [จำนวนบนช่องที่ระบุ, ผลรวมบนทั้ง 64 ช่อง]

เงื่อนไข

1 ≤ square ≤ 64. ข้อความเอาต์พุตต้องประกอบด้วยตัวเลขฐานสิบเท่านั้น ห้ามมีจุลภาค เว้นวรรค หรือศูนย์นำหน้า

ตัวอย่าง

ตัวอย่างที่ 1
อินพุต:
square = 6

ผลลัพธ์ที่คาดหวัง:
expected = ["32", "18446744073709551615"]
อินพุต:
long long square = 6;

ผลลัพธ์ที่คาดหวัง:
std::vector<std::string> expected = {"32", "18446744073709551615"};
อินพุต:
long square = 6;

ผลลัพธ์ที่คาดหวัง:
string[] expected = new string[] {"32", "18446744073709551615"};

คำอธิบาย

จำนวนเมล็ดข้าวหกช่องแรกคือ 1, 2, 4, 8, 16, 32 ผลรวมของทั้งกระดานคือ 1 + 2 + … + 2⁶³ = 2⁶⁴ − 1

ตัวอย่างที่ 2
อินพุต:
square = 1

ผลลัพธ์ที่คาดหวัง:
expected = ["1", "18446744073709551615"]
อินพุต:
long long square = 1;

ผลลัพธ์ที่คาดหวัง:
std::vector<std::string> expected = {"1", "18446744073709551615"};
อินพุต:
long square = 1;

ผลลัพธ์ที่คาดหวัง:
string[] expected = new string[] {"1", "18446744073709551615"};

คำอธิบาย

ช่องแรกมีเมล็ดข้าว 1 เมล็ด ค่าผลลัพธ์ตัวที่สองจะหมายถึงผลรวมของทั้ง 64 ช่องเสมอ ไม่ใช่แค่ผลรวมของช่องที่ระบุหรือช่องก่อนหน้า

แหล่งอ้างอิง

โจทย์นี้ปรับให้เหมาะกับ CodeUtility กรุณาทำตามคำชี้แจงและข้อจำกัดด้านบน

เรียนรู้จากคนอื่น

แนวทางจากชุมชน

ยังไม่มีวิธีทำที่เผยแพร่ ลองแก้โจทย์นี้เพื่อแชร์วิธีแรก