
お世話になります。
Javaのプログラミング学習初心者です。
超初歩的な質問で大変申し訳ありません。
剰余の計算がわからなくてとても困っております。
a>bの場合、a%bの計算はできるのですが、a<bの場合のa%bの計算方法がわからないのです。
iが0の場合および1の場合は、下のどの条件に当てはまるのでしょうか。
(1) i%2==1
(2) i%2==0
iが0か1のときは、2で割っても余らないから(2)であるという理解でよろしいのでしょうか。
(質問の仕方がわかりずらかったら申し訳ありません)
初歩的すぎるせいか、調べても見つけられなくて困っています。
どうぞよろしくお願いいたします。
No.2ベストアンサー
- 回答日時:
剰余とは小学校の算数で習う「余りの出る割り算」の余りを求める演算です。
「余りの出る割り算」と同様、Javaの剰余も
整数1 ÷ 整数2 = 商(整数) + 余り
となり、商は整数として計算されます。
つまり、「1÷2 = 1 … 1」ということです。「1÷2 = 0.5」とはなりません。
>0を2で割ると余りが0…というのは、割れないから0なのかな?
0はどんな数(ただし0を除く)で割っても割り切れます。
【例】
「0 ÷ 2 = 0」
「0 ÷ 100 = 0」
なので、「0 % 2」は余りが出ないので 0 になります。
回答ありがとうございます!!
わかりやすいです!
0は0以外のどんな数で割っても割り切れるんですね!覚えておきます。
でも、「1÷2 = 1」がわかりません…
なぜ1÷2は1なのでしょうか???割れないから1のままということなのでしょうか。
(もしかして、リンゴはなぜ"apple"というの?と同じレベルの質問をしてるかもしれませんが)
そこのところがどうしてもすっきりしないのですが、
もし再度ご回答いただけると幸いです。
No.4
- 回答日時:
回答#2で誤記しました。
すみません。「1÷2 = 1 … 1」ではなくて、正しくは
「1÷2 = 0 … 1」です。
回答ありがとうございます!
今、m = q * n + r ( 0 ≦ r < n )を見て悩んでおりました(笑)。
突然qやrが出てきたもので、混乱しています(ほんとに無知ですいません)
「1÷2 = 0 … 1」ですか!!
これは、「1÷2は0で余りは1」という意味でよろしいでしょうか。
No.3
- 回答日時:
整数で「 m 割る n 」の定義はこうです
m = q * n + r ( 0 ≦ r < n )
ここで r がすなわち m % n です。
m = 0 を n = 2 で割ると
0 = 0 * 2 + 0
です。
>とも思うのですが、1を2で割ると0.5になり、"int i"としている場合は
>小数点が切り捨てられるとテキストに書いてあったので、
実数型の演算はまた別の話です。
お礼が前後してしまって申し訳ありません。
qやrが何を表しているかわかりました。
問題を何度も解いていくうちに、わかったような気がします。
どうもありがとうございました。
No.1
- 回答日時:
わからないのであれば仕方がない。
テストプログラムを作って、実際に計算してみればよろしかろう。
結果を補足にどうぞ。
この回答への補足
回答ありがとうございます。
そうでしたね!自分で実験すれば良かったんですよね!
結果、こうなりました。
i=0のときは、i%2==0
i=1のときは、i%2==1
でも、なぜこうなるのでしょうか。
0を2で割ると余りが0…というのは、割れないから0なのかな?
とも思うのですが、1を2で割ると0.5になり、"int i"としている場合は
小数点が切り捨てられるとテキストに書いてあったので、
やはり0になるのかなと思ってしまうのです。
それとも、0.5のときは四捨五入されて1になるということなのでしょうか。
もう一度ご回答いただければ大変助かります。
どうぞよろしくお願いいたします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
モジュロ
-
ファミリーベーシックのPOKE&H...
-
65536は2の何乗なのでしょうか?
-
PHPとJavaでSHA256の結果を同じ...
-
変化させるセルが変化しない
-
C# 計算処理中に実行中ウィン...
-
VBAで関数をつくる
-
EXCELなどで「返す」という表現
-
C言語で N行*M列 の逆行列を求...
-
エクセルで特定のセルのみを任...
-
prolog計算
-
ファイルの開き方
-
VBAで仕様書は書きますか?
-
VC++コンソールアプリでウイン...
-
正しい五十音順について
-
VBAにてメール作成した際、一部...
-
「Outlookが他のプログラムによ...
-
PICマイコンのコピー(クローン...
-
CreateObject関数について
-
visual studio 2019を使ってい...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
65536は2の何乗なのでしょうか?
-
変化させるセルが変化しない
-
EXCELなどで「返す」という表現
-
VBAの再計算が反映されない件に...
-
VBAで関数をつくる
-
matlabで計算終了
-
排他的論理和 BCC(水平パリテ...
-
モジュラス103の計算とは何でし...
-
引き放し法による除算アルゴリ...
-
バッチファイルでウインドウを...
-
スレッド処理からダイアログを...
-
数値計算の高速化 (cos, sin, exp)
-
エクセルで特定のセルのみを任...
-
モジュロ
-
関数を使わないで日付の計算を...
-
階乗のマクロ
-
時間(ミリ秒を含む)の引き算
-
なぜオーバーフローになるので...
-
論理演算子.NOT.の使い方
-
PHPとJavaでSHA256の結果を同じ...
おすすめ情報