アプリ版:「スタンプのみでお礼する」機能のリリースについて

学校で住宅ローンの問題がでました。途中まではできたのですが条件があり途中まではできたのですが、ここからどうすればいいのかわからないです。どなたか詳しい方がいれば教えていただきたいです。
atama = float(input("頭金を入力してください(万円)→"))
ris = 0.04
hen = float(input("返済額を入力してください(万円)"))
zan = 5000 - atama
mon = 0

while zan > 0:
zan -= hen
zan *= 1.04
mon += 1
print(mon)
・条件
あなたは念願のマイホームを購入するために5000万円のローンを組むこととしました。ローンは「頭金」を最初に支払い、残額を「毎月払い」と「ボーナス上乗せ」の金額を月ごとに返済していきます。ただし、返済後の残額に毎月「利息」がついていきます。ローンの仕様は以下のとおりです。
1.毎月利息は0.04%で固定であるとします。利息は月ごとの返済額を引いた残額に上乗せされます。
2.返済し始めてから6ヶ月、12ヶ月、18ヶ月...(6の倍数の月)はボーナス分を上乗せして返済することとします。
3.各回の「ボーナス上乗せ」は「毎月払い」の金額の1.5倍で固定であるとします。つまり、ボーナス月はそれ以外の月の2.5倍を返済することとします。
4.「頭金」と「毎月払い」の金額をローン契約する際に決めなければならないこととします。「頭金」は10万円単位で、「毎月払い」は1万円単位で変更可能です。「毎月払い」と「頭金」をそれぞれ入力すると、完済まで何ヶ月かかるかが求められるPythonコードを書いてください。計算は浮動小数点数で行って良いものとします。

A 回答 (7件)

何をどうしようとして困っているのですか?



具体的には何がわからないのですか?
    • good
    • 0

1.04を掛けるということは利息が0.04%ではなく、4%ってことですよ。


ボーナス上乗せについては、monを6で割った余りが0の月にhenの2.5倍の返済をする(mon=0の時だけ注意)。この条件をif文で、ループの中に入れれば良い。
    • good
    • 0
この回答へのお礼

ループにいれたんですけどこれであってますか?
atama = float(input("頭金を入力してください(万円)"))
hen = float(input("返済額を入力してください(万円)"))
zan =5000
mon = 1
zan -= atama

while zan > 0:
if mon % 6== 0:
zan -= hen *2.5
else:
zan -= hen
zan *= 1.0004
mon += 1
print(mon-1)

お礼日時:2021/01/02 19:23

とりあえず ”フローチャート” を書いてみましょう。


処理手順の確認に必要です。

・・・
ローンについての知識がないから解けないのか、
知識があってもどう処理すればいいのか分からないのか、
その両方なのか、
……でアドバイスが変わるのです。

まずは ”フローチャート” を書いて手順に誤りがないかを確認してください。
”フローチャート” を書けない場合は、
 ・”フローチャート” が何なのか分からない。
 ・”フローチャート” の書き方が分からない。
 ・”フローチャート” のどこに何を入れればいいのか分からない。
 ・”フローチャート” が必要な理由が分からない。
など、自問自答して、書けるように努力してみましょう。

・・・
「代わりに作ってください」という作業依頼じゃありませんよね?
自分で作るために必要な知識のアドバイスを貰いたいのですよね。
ならば、質問者さんはどこまで理解していて何が不足しているのかを確かめる必要があります。
(まあ、それができれば自分で解決できるんですけどね)
    • good
    • 0

>ループにいれたんですけどこれであってますか?



まあそんな感じですね。でも借入額は5000万円なんじゃないんですか? 5000ってことは5000円?
プログラムがあっているかどうか検証をするのもプログラミングの一部です。簡単な例を自分で作って、プログラムが思った通りの結果を出すかどうか確認してみましょう。
    • good
    • 0

ああごめん。

一万円が最小単位なので、浮動小数点を使うのなら5000でもいいかもね。
まあ、とりあえずは自分で検証をしてみてください。
    • good
    • 0

試し書きした感じ、こんな結果が得られるという。

間違ってたらごめんなさい。

頭金= 400万円、毎月支払額= 20万円,支払回数=16年,支払総額=5178万314円,最終月支払額= 28万314円
頭金= 400万円、毎月支払額= 10万円,支払回数=33年3ヶ月,支払総額=5375万8378円,最終月支払額= 5万8378円
頭金= 400万円、毎月支払額= 7万円,支払回数=49年3ヶ月,支払総額=5564万1713円,最終月支払額= 5万1713円

https://www.ideone.com/9dOUhw
    • good
    • 0

class Loan:



 def __init__(self, deposit, monthly_repayment_figure, debt = 50000000):
  self.deposit = deposit
  self.monthly_repayment_figure = monthly_repayment_figure
  self.debt = debt
  self.interest = 1.0004

 def payout_period(self):
  amount = self.debt - self.deposit
  month = 0
  while amount > 0:
   month += 1
    if (month % 6 == 0):
     amount -= 2.5 * self.monthly_repayment_figure
    else:
     amount -= self.monthly_repayment_figure
   amount *= self.interest
  return month

if __name__ == '__main__':
 deposit = int(input("頭金を入力してください (万円) ->")) // 10 * 100000
 monthly_repayment_figure = int(input("返済額を入力してください (万円)")) * 10000
 month = Loan(deposit, monthly_repayment_figure)
 print("{0}ヶ月".format(month.payout_period()))
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!