while True:

プログラミング演習(備瀬 竜馬)

第11回

小問番号はコメント(#)を参照
# 11_A_1
nlim = 2000
base = 17
num = 0
while num < 2000:
    print(num, end=" ")
    num += base
print()


# 11_A_2
num = int(input("整数:"))
num0 = num
value = 1
while num > 0:
    value *= num
    num -= 1
print("{}! = {}".format(num0, value))


# 11_B_1
while True:
    num = int(input("何月?:"))
    if 0 < num < 13:
        break
days_30 = [4, 6, 9, 11]
if num == 2:
    print("2月は28日です")
elif num in days_30:
    print("{}月は30日です".format(num))
else:
    print("{}月は31日です".format(num))


# 11_B_2
nums = []
while True:
    num = int(input("整数(終わるときは0):"))
    if num == 0:
        break
nums.append(num)
print("最大値:{}".format(max(nums)))
print("最小値:{}".format(min(nums)))
print("個 数:{}".format(len(nums)))


# 11_C_1
eps = 0.0001
a = float(input("正の数を入力:"))
b = a # 暫定解の初期値
while True:
    # F(x) = x ** 2 - a
    # F'(x) = 2 * x
    # X(n+1) = Xn - (F(Xn) / F'(Xn))
    b_new = b - (b ** 2 - a) / (2 * b)
    if abs(b_new - b) < eps:
        break
    b = b_new
print("{}の平方根:{}".format(a, b_new))


# 11_C_2
eps = 0.0001
a = float(input("正の数を入力:"))
b = a # 暫定解の初期値
while True:
    # F(x) = x ** 3 - a
    # F'(x) = 3 * x ** 2
    # X(n+1) = Xn - (F(Xn) / F'(Xn))
    b_new = b - (b ** 3 - a) / (3 * b ** 2)
    if abs(b_new - b) < eps:
        break
    b = b_new
print("{}の三乗根:{}".format(a, b_new))
  
ページのトップへ戻る