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: 計算式の商だけを使いたい
素直にA/Bでいいのではないでしょうか?
失礼しました。
自分が知っている「普通」の体系では、商×割る数+あまり=割られる数 という式が常に成り立つので、ここで使用されている
この体系での「商」の定義から計算方法を考え、それに沿ったコードをであらわせばいいと思います。
【さらに追記】
C言語の両辺が整数である/演算子の結果は小数部分が切り捨てられて整数になり、(a/b)*b + a%b == aが成り立つので、
%演算子の結果も整数になるはずです。
しかし、「AをBで割ったときの余りはA%Bで求まる」という主張があり、この体系では1/3などの分数のあまりを考えるようなので、
これはC言語の話ではないですね。
使用したい言語を教えてください。
(それとも、「あまり」と「余り」はこの体系では別物でしょうか?)
失礼しました。
自分が知っている「普通」の体系では、商×割る数+あまり=割られる数 という式が常に成り立つので、ここで使用されている
という体系とは違うようですね。特に、利用する言語がわからないですが、C言語の/演算子と%演算子はN1256 6.5.5 Multiplicative operatorsでトーマ さんが書きました: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で求まる」と仮定すると、この体系では使えないでしょう。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.
この体系での「商」の定義から計算方法を考え、それに沿ったコードをであらわせばいいと思います。
【さらに追記】
C言語の両辺が整数である/演算子の結果は小数部分が切り捨てられて整数になり、(a/b)*b + a%b == aが成り立つので、
%演算子の結果も整数になるはずです。
しかし、「AをBで割ったときの余りはA%Bで求まる」という主張があり、この体系では1/3などの分数のあまりを考えるようなので、
これはC言語の話ではないですね。
使用したい言語を教えてください。
(それとも、「あまり」と「余り」はこの体系では別物でしょうか?)
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)
Re: 計算式の商だけを使いたい
割り切れない場合のあまりの計算が
おかしくないですか?例えば
4 ÷ 3 = 1 ... 1
ではないでしょうか。
それはさておき、Cでは、整数どうしの割り算を
行うと、商は整数となります。
おかしくないですか?例えば
4 ÷ 3 = 1 ... 1
ではないでしょうか。
それはさておき、Cでは、整数どうしの割り算を
行うと、商は整数となります。
Re: 計算式の商だけを使いたい
回答ありがとうございます.
あまりと余りは単なる変換ミスというだけで,おなじものです.
また,言語はC言語です,といった答えでいいのでしょうか?他に何があるか知らないので,C言語としか答えられないです.
分数の余りはただ書いただけで,ここでは必要ではありません.たんに,p/3ででる商の整数だけを使いたいです.
あまりと余りは単なる変換ミスというだけで,おなじものです.
また,言語はC言語です,といった答えでいいのでしょうか?他に何があるか知らないので,C言語としか答えられないです.
分数の余りはただ書いただけで,ここでは必要ではありません.たんに,p/3ででる商の整数だけを使いたいです.