質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
アルゴリズム

アルゴリズムとは、定められた目的を達成するために、プログラムの理論的な動作を定義するものです。

Q&A

解決済

3回答

3081閲覧

支払金額の算出フローチャートの書き方

退会済みユーザー

退会済みユーザー

総合スコア0

アルゴリズム

アルゴリズムとは、定められた目的を達成するために、プログラムの理論的な動作を定義するものです。

0グッド

0クリップ

投稿2019/02/06 08:04

編集2019/02/06 08:19

前提・実現したいこと

以下設問のフローチャートの書き方がわからないので教えてください.

外部から「飲み会の総額」と「参加人数」を入力し、「一人あたりの支払い金額」を出力する。
ただし、支払い単位は500円区切りとし、「足りない端数」の金額も出力すること。

「足りない端数」の計算は切り下げて算出する。

総額を人数分で割ることはわかるのですが,
支払単位は500円区切りとし,「足りないは端数」の金額も出力する部分の書き方がわかりません.

試したこと

「500円区切り」は最初に500円単位で区切る処理記号を書いてみましたが,
処理の流れが不明確なフローチャートとなってしまいました.

*****

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

tiitoi

2019/02/06 08:12

budget = 20000 # 飲み会総額 N = 11 # 参加人数 とした場合、一人あたり 1818.18... となりますが、500円単位にした場合、このケースでは切り上げて2000円なのか1500円なのかどちらになりますか?
退会済みユーザー

退会済みユーザー

2019/02/06 08:20 編集

申し訳ございませんでした.切り下げての算出方法にてよろしくお願いいたします.
sazi

2019/02/06 08:16

>「足りない端数」の金額も出力すること。 とあるので、1,500円では?
guest

回答3

0

切り上げた場合、総額より集めた金額のほうが大きくなってしまうので、意味的に切り下げのような気もしますが。。

端数を500円単位で切り上げる場合

イメージ説明

端数を500円単位で切り下げる場合

イメージ説明

実装例

python

1import math 2 3def func1(budget, N): 4 # 切り捨て 5 price = math.floor(budget / N / 500) * 500 6 deficit = budget - price * N 7 print(price, deficit) 8 return price, deficit 9 10def func2(budget, N): 11 # 切り上げ 12 price = math.ceil(budget / N / 500) * 500 13 deficit = budget - price * N 14 print(price, deficit) 15 return price, deficit 16 17assert func1(budget=20000, N=11) == (1500, 3500) 18assert func2(budget=20000, N=11) == (2000, -2000) 19assert func1(budget=20000, N=10) == (2000, 0) 20assert func2(budget=20000, N=10) == (2000, 0)

投稿2019/02/06 08:49

tiitoi

総合スコア21956

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

フローチャートの書き方ですよね?普通の四角い箱に、計算式を書けばいいと思います。

全体としても、特に条件判断とか無さそうなので、四角い箱が順番に並ぶだけだと思います。

投稿2019/02/06 08:30

otn

総合スコア84555

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ベストアンサー

「フローチャートの書き方」という話に関しては,

処理の流れが不明確

になるような要素が特別見当たりません.

Total ← 支払総額
N ← 人数
と入力

N * k * 500 < Total
を満たす最大の整数kの値を求めれば一人当たりの支払い額は k*500 だよね

端数の算出方法は自明.

…みたいな話を,単に一列に書き並べれば完成するのでは.

投稿2019/02/06 08:39

fana

総合スコア11658

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問