สมมติว่าคุณใส่ 1Rs ในธนาคารในวันแรกที่พูดว่าวันจันทร์ และทุกวันตั้งแต่วันถัดไป วันอังคารถึงวันอาทิตย์ คุณใส่ 1Rs มากกว่าวันก่อน และทุกวันจันทร์ถัดไป คุณจะเพิ่ม 1Rs มากกว่าวันจันทร์ก่อนหน้า ถ้าเรามีตัวเลข n เราต้องหาจำนวนเงินทั้งหมดที่คุณจะมีในธนาคารเมื่อสิ้นสุดวันที่ n
ดังนั้น หากอินพุตมีค่าเท่ากับ n =17 ผลลัพธ์จะเป็น 75 เพราะใส่ 1R ในวันจันทร์, 2R ในวันอังคารเป็นต้น ดังนั้น 7R ในวันอาทิตย์ จากนั้นในวันจันทร์หน้าให้ใส่ 2R ในวันอังคารที่สองใส่ 3R ดังนั้น ในวันอาทิตย์ใส่ 8Rs จากนั้นในวันจันทร์ที่สามใส่ 3Rs วันอังคารใส่ 4R และวันพุธ (วันสุดท้าย) ใส่ 5R ดังนั้นผลรวมทั้งหมดจึงเป็น (1+2+3+4+5+6+7)+(2+3+4+5+6+ 7+8)+(3+4+5) =75Rs
เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ -
-
s :=28
-
res :=0
-
ถ้า n> 7 แล้ว
-
res :=s
-
div :=ชั้นของ n/7
-
สำหรับฉันอยู่ในช่วง 1 ถึง div - 1 ทำ
-
res :=res + s+7*i
-
-
rem :=n mod 7
-
สำหรับฉันอยู่ในช่วง 1 ถึง rem ทำ
-
res :=res + i+div
-
-
-
มิฉะนั้น
-
สำหรับผมอยู่ในช่วง 1 ถึง n ทำ
-
res :=res + ผม
-
-
-
ผลตอบแทน
ตัวอย่าง (Python)
ให้เราดูการใช้งานต่อไปนี้เพื่อความเข้าใจที่ดีขึ้น -
def solve(n): s = 28 res = 0 if n>7: res = s div = n//7 for i in range(1,div): res += s+7*i rem = n % 7 for i in range(1,rem+1): res += i+div else: for i in range(1,n+1): res+=i return res n = 17 print(solve(n))
อินพุต
17
ผลลัพธ์
75