ページ 1 / 1
計算式の商だけを使いたい
Posted: 2015年11月26日(木) 21:55
by トーマ
C言語を習いはじめたばかりの学生です.
p/3とし,
p=0のとき 0/3 で商は0,あまり0
p=1 1/3 で商は0,あまり1/3
p=2 2/3 で商は0,あまり2/3
p=3 3/3 で商は1,あまり0
p=4 4/3 で商は1,あまり1/3
p=5 5/3 で商は1,あまり2/3
となりますが,AをBで割ったときの余りはA%Bで求まることは分かったのですが,この商だけ使いたいばあいはどうあらわせばいいでしょうか?
Re: 計算式の商だけを使いたい
Posted: 2015年11月26日(木) 22:16
by みけCAT
素直にA/Bでいいのではないでしょうか?
失礼しました。
自分が知っている「普通」の体系では、商×割る数+あまり=割られる数 という式が常に成り立つので、ここで使用されている
トーマ さんが書きました:p/3とし,
p=0のとき 0/3 で商は0,あまり0
p=1 1/3 で商は0,あまり1/3
p=2 2/3 で商は0,あまり2/3
p=3 3/3 で商は1,あまり0
p=4 4/3 で商は1,あまり1/3
p=5 5/3 で商は1,あまり2/3
となりますが,
という体系とは違うようですね。特に、利用する言語がわからないですが、C言語の/演算子と%演算子は
N1256 6.5.5 Multiplicative operatorsで
When integers are divided, the result of the / operator is the algebraic quotient with any
fractional part discarded. 90) If the quotient a/b is representable, the expression
(a/b)*b + a%b shall equal a.
と定義されているので、「AをBで割ったときの余りはA%Bで求まる」と仮定すると、この体系では使えないでしょう。
この体系での「商」の定義から計算方法を考え、それに沿ったコードをであらわせばいいと思います。
【さらに追記】
C言語の両辺が整数である/演算子の結果は小数部分が切り捨てられて整数になり、(a/b)*b + a%b == aが成り立つので、
%演算子の結果も整数になるはずです。
しかし、「AをBで割ったときの余りはA%Bで求まる」という主張があり、この体系では1/3などの分数のあまりを考えるようなので、
これはC言語の話ではないですね。
使用したい言語を教えてください。
(それとも、「あまり」と「余り」はこの体系では別物でしょうか?)
Re: 計算式の商だけを使いたい
Posted: 2015年11月26日(木) 22:55
by 超初級者
割り切れない場合のあまりの計算が
おかしくないですか?例えば
4 ÷ 3 = 1 ... 1
ではないでしょうか。
それはさておき、Cでは、整数どうしの割り算を
行うと、商は整数となります。
Re: 計算式の商だけを使いたい
Posted: 2015年11月26日(木) 23:07
by トーマ
回答ありがとうございます.
あまりと余りは単なる変換ミスというだけで,おなじものです.
また,言語はC言語です,といった答えでいいのでしょうか?他に何があるか知らないので,C言語としか答えられないです.
分数の余りはただ書いただけで,ここでは必要ではありません.たんに,p/3ででる商の整数だけを使いたいです.
Re: 計算式の商だけを使いたい
Posted: 2015年11月26日(木) 23:23
by 超初級者
ということであれば、例えば
コード:
#include <stdio.h>
int main(void)
{
printf("%d", 5 / 3);
return 0;
}
を実行してみてください。