รับจำนวนจริง \(a\), \(b\) และ \(e\) จาก input (ในบรรทัดเดียวกัน คั่นด้วยช่องว่าง) แล้วแสดงคำว่า close enough ถ้า \(|a-b| \leq e \cdot max(|a|,|b|)\) เป็นจริง ไม่เช่นนั้น แสดงว่า not equal
___inp___ = ["1 1 1e-10"]
def input():
return ___inp___[0]
x = input().split()
a = float(x[0])
b = float(x[1])
e = float(x[2])
x = input().split()
a = float(x[0])
b = float(x[1])
e = float(x[2])
if abs(a-b) <= e*max(abs(a),abs(b)):
print("close enough")
else:
print("not equal")
for v in ["0.1 0.1000000001 1e-9", "0.1 0.1000000001 1e-10", \
"0 2 1", "-1 -1 1"]:
Ex().has_equal_output(pre_code="___inp___[0] ='"+str(v)+"'",
incorrect_msg = "ผิด เช่น กรณี x = " + str(v))
รับจำนวนจริง x จาก input แล้วใช้วิธี bisection หาและแสดงค่าของ
\(\sqrt[^3]{x}\) (รากที่ 3 ของ \(x\))
กำหนดให้ \(a\) และ \(b\) มีค่าเกือบเท่ากัน เมื่อ
\(|a-b| \leq 10^{-6}max(|a|,|b|)\)
___inp___ = ["1"]
def input():
return ___inp___[0]
x = float(input())
L = 0; U = x
r = (L + U)/2
r3 = r**3
while abs(r3-x) > 1e-6*max(r3, x):
if r3 > x:
U = r
else:
L = r
r = (L + U)/2
r3 = r**3
print(r)
Ex().check_while(missing_msg="ควรฝึกใช้วงวน while")
for v in [8, 27, 64.0, 125.0, 1000.0, 970299]:
Ex().has_equal_output(pre_code="___inp___[0] ='"+str(v)+"'",
incorrect_msg = "ผิด เช่น กรณี x = " + str(v))