ง่าย 0 ข้อที่แก้แล้ว อัตราผ่าน 0%

Doubling Grains on a Chessboard

Calculate a square’s grain count and the total on all 64 squares.

สิ่งที่คุณจะได้เรียนรู้

  • Compute doubling with powers of two
  • Sum a geometric series
  • Work with values near the 64-bit limit

โจทย์

ดูฉบับแปล

Square 1 holds one grain. Each later square holds twice as many grains as the previous square. Return both the count on the requested square and the total on squares 1 through 64. Write each count as decimal text, because the board total is too large for a signed 64-bit integer.

Implement chessboard_grains(square).

Input

square: The requested square, numbered from 1.

Output

Return two decimal strings: [count on the requested square, total on all 64 squares].

เงื่อนไข

1 ≤ square ≤ 64. Output strings contain decimal digits only, with no commas, spaces, or leading zeros.

ตัวอย่าง

ตัวอย่างที่ 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"};

คำอธิบาย

The first six counts are 1, 2, 4, 8, 16, 32. The board total is 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"};

คำอธิบาย

The first square holds 1 grain. The second output always refers to all 64 squares, not just the requested prefix.

แนวทางการแก้

ลองทำเองก่อน แล้วค่อยเปิดคำใบ้ทีละข้อ

คำใบ้ 1

Each square doubles the previous square, so the requested count depends only on its position.

คำใบ้ 2

The total across all 64 squares is a geometric progression, and it grows far beyond normal integer limits.

คำใบ้ 3

Return both values as plain decimal text, and watch that the first square is one, not zero.

ความซับซ้อนที่คาดหวัง

O(1) time, O(1) extra space

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

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

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

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

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