はじまりはいつも自己紹介から
どうも!
割り算の余りが出せないモンスターです!
今回ですが、rubyで割り算と余りを算出する問題が出され正解を一発で出すことができなかったので、こちらの記事を書く決心をしました。
以下本文
なんで、できんかったん?
今回の問題を解くのが難しいと感じたのは以下の理由があったからです。
1. rubyの組み込みメソッドが使えない。
2. 割り算の"/"は商しか出すことができないこと。
そのためわかりませんでした。
余りを出す組み込みメソッド "modulo"
皆様ご存知かと思われますが、rubyには割り算の余りを出すメソッドがあります。
それがmoduloメソッドです。
以下"modulo"の解説
moduloメソッドの使い方
moduloメソッドは数値オブジェクトに対して呼び出され、引数として除数を指定します。すると、割り算の余りを返してくれます。以下にいくつかの例を示します。
puts 10.modulo(3) # 出力: 1
puts 20.modulo(4) # 出力: 0
puts 25.modulo(7) # 出力: 4
puts -15.modulo(4) # 出力: 1
上記の例では、10 ÷ 3の余りが1であることが分かります。同様に、他の例も同じように余りを計算してくれます。
一応割り算の例
dividend = 10
divisor = 3
quotient = dividend / divisor
puts "#{dividend} ÷ #{divisor} = #{quotient}"
#出力 10 ÷ 3 = 3
上記を実行していただけるとわかりますが、単に"/"の割り算では余りは出力されません
結局どうやって解決したの?
なんのことはなくて、単に"%"を使うことによって出力しました。
%を使うと以下のようになります。
puts 10 % 3 # 出力: 1
puts -10 % 3 # 出力: 2
puts 10 % -3 # 出力: -2
puts -10 % -3 # 出力: -1
正直知ってしまったら、もうなんてことはない問題ですね😊
"%"演算子と"modulo"の違い
みんな気になってうずうずしてスタンディングしていたと思いますが、座っていいですよ。
おまちかねの 'そこに違いはあるんか?' と尋ねるお時間です。
以下解説
尋ねてみましたが違いはありませんでしたorz
まとめ
この顔するので許してください
🥴
最後に
今回勉強したことで、もう2度と余りを求めたい時に迷わなくなりました。
皆様もどうしても余りを求めたい時があると思うのでこちらの記事のことを思い出すと何かいいことがあるやもしれません。