計算式の商だけを使いたい

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
トーマ

計算式の商だけを使いたい

#1

投稿記事 by トーマ » 9年前

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で求まることは分かったのですが,この商だけ使いたいばあいはどうあらわせばいいでしょうか?

アバター
みけCAT
記事: 6734
登録日時: 14年前
住所: 千葉県
連絡を取る:

Re: 計算式の商だけを使いたい

#2

投稿記事 by みけCAT » 9年前

素直に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言語の話ではないですね。
使用したい言語を教えてください。
(それとも、「あまり」と「余り」はこの体系では別物でしょうか?)
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)

超初級者
記事: 56
登録日時: 11年前

Re: 計算式の商だけを使いたい

#3

投稿記事 by 超初級者 » 9年前

割り切れない場合のあまりの計算が
おかしくないですか?例えば

4 ÷ 3 = 1 ... 1

ではないでしょうか。

それはさておき、Cでは、整数どうしの割り算を
行うと、商は整数となります。

トーマ

Re: 計算式の商だけを使いたい

#4

投稿記事 by トーマ » 9年前

回答ありがとうございます.

あまりと余りは単なる変換ミスというだけで,おなじものです.

また,言語はC言語です,といった答えでいいのでしょうか?他に何があるか知らないので,C言語としか答えられないです.

分数の余りはただ書いただけで,ここでは必要ではありません.たんに,p/3ででる商の整数だけを使いたいです.

超初級者
記事: 56
登録日時: 11年前

Re: 計算式の商だけを使いたい

#5

投稿記事 by 超初級者 » 9年前

ということであれば、例えば

コード:

#include <stdio.h>
int main(void)
{
    printf("%d", 5 / 3);
    return 0;
}
を実行してみてください。

閉鎖

“C言語何でも質問掲示板” へ戻る