คำตอบที่ได้รับเลือกจากเจ้าของกระทู้
ความคิดเห็นที่ 3
กำลังงงว่าทำไมต้องใส่ loop
เมื่อ Y ปีที่แล้วนายA แก่กว่านายB เป็นจำนวน M เท่า
(A-Y)=M(B-Y) --> 1
และปัจจุบันนายA แก่กว่านายB เป็นจำนวน N ปี
A-B=N --> 2
ถามว่าตอนนี้ทั้งคู่อายุเท่าไร
A=?, B=?
จาก 2 A=N-B
เอาไปแทนใน 1 ได้ N-B-Y=MB-MY
จัดรูปใหม่ MB+B = N-Y+MY
B = N-Y+MY/(M-1)
B = N+Y(M-1)/(M-1)
B = N/(M-1)+Y
ของ A ลองไปคิดเองแล้วกัน
ถ้าคุณทำแบบนี้ คุณไม่ต้องใช้ loop เลยด้วยซ้ำ จากโจทย์ของคุณมันจะเหลือแค่สมการง่าย ใส่เลขเข้าไปคิดออกเลย
แต่ไม่ใช่ว่าวิธีนี้จะไม่มีข้อเสียนะ
มันมี input นึงที่ทำให้ วิธีนี้ทำงานไม่ได้เลย ...... ลองหาดูเอาเองละกัน ..แต่ก็มีวิธีแก้อยู่
ส่วนที่ จขกท. ถาม Input:30 30 40
คำตอบมันมีครับ 71/41 ปีกว่าๆ
ถ้าคุณสังเกตุจากสมการนะ B = N/(M-1)+Y
นั่นคือ ถ้าคุณจะเอาคำตอบเป็นจำนวนเต็ม .... N ต้องถูกหารด้วย (M-1) ลงตัว
แต่ตัวอย่างของคุณมันไม่ลงตัว .... ดังนั้นคุณไม่มีทางได้คำตอบที่เป็นจำนวนเต็ม
แถมคุณไปวนลูปด้วยจำนวนเต็ม ..... วนยังไงมันก็หาคำตอบไม่เจอ
เอวัง
เมื่อ Y ปีที่แล้วนายA แก่กว่านายB เป็นจำนวน M เท่า
(A-Y)=M(B-Y) --> 1
และปัจจุบันนายA แก่กว่านายB เป็นจำนวน N ปี
A-B=N --> 2
ถามว่าตอนนี้ทั้งคู่อายุเท่าไร
A=?, B=?
จาก 2 A=N-B
เอาไปแทนใน 1 ได้ N-B-Y=MB-MY
จัดรูปใหม่ MB+B = N-Y+MY
B = N-Y+MY/(M-1)
B = N+Y(M-1)/(M-1)
B = N/(M-1)+Y
ของ A ลองไปคิดเองแล้วกัน
ถ้าคุณทำแบบนี้ คุณไม่ต้องใช้ loop เลยด้วยซ้ำ จากโจทย์ของคุณมันจะเหลือแค่สมการง่าย ใส่เลขเข้าไปคิดออกเลย
แต่ไม่ใช่ว่าวิธีนี้จะไม่มีข้อเสียนะ
มันมี input นึงที่ทำให้ วิธีนี้ทำงานไม่ได้เลย ...... ลองหาดูเอาเองละกัน ..แต่ก็มีวิธีแก้อยู่
ส่วนที่ จขกท. ถาม Input:30 30 40
คำตอบมันมีครับ 71/41 ปีกว่าๆ
ถ้าคุณสังเกตุจากสมการนะ B = N/(M-1)+Y
นั่นคือ ถ้าคุณจะเอาคำตอบเป็นจำนวนเต็ม .... N ต้องถูกหารด้วย (M-1) ลงตัว
แต่ตัวอย่างของคุณมันไม่ลงตัว .... ดังนั้นคุณไม่มีทางได้คำตอบที่เป็นจำนวนเต็ม
แถมคุณไปวนลูปด้วยจำนวนเต็ม ..... วนยังไงมันก็หาคำตอบไม่เจอ
เอวัง
แสดงความคิดเห็น
ขอถามเกี่ยวกับโจทย์นี้เป็นภาษาPythonครับ
input:จำนวนเต็ม 3 จำนวน N M Y
ผมลองงมๆทำดูแล้วแต่คำตอบออกมาไม่ถูกครับ อยากรู้ว่าผมเข้าใจโจทย์ผิดในส่วนไหนครับ
โค้ดที่ลองผมเขียน:
x = input()
y = x.split(' ')
n = int(y[0])
m = int(y[1])
y = int(y[2])
for i in range(1000):
a = i
for e in range(1000):
b = e
if a - y == (b - y) * m:
if a - b == n:
print(a, b)
break
else:
continue