#[環境]
Java version 16.0.1
VS Code
Mac OS Big Surの環境です。
java -version
java version "16.0.1" 2021-04-20
Java(TM) SE Runtime Environment (build 16.0.1+9-24)
Java HotSpot(TM) 64-Bit Server VM (build 16.0.1+9-24, mixed mode, sharing)
MacBook:09_MinutesToYearsandDayCalculator $
#[エラー]
[学習状況]
progateを3巡、ドットインストール1巡、スッキリJavaの本を8割読みました。現在、UdemyのJava Programming Masterclass for Software Developersというコースで演習問題に取り組んでいます
この問題はUdemyでの演習24番目なので、まったくの初めてというわけではありません。
まだまだ初心者ですが真面目に取り組んでいるので、何卒、よろしくお願いします。
#[演習問題の内容]
小麦粉のパックを作ろう!という演習問題です。
小麦粉のパックは 5kgのパックの数(bigCount)、1kgのパックの数(smallCount)、そしてゴールのkg(goal)、これがメソッドの引数になります。小麦粉のパックを使ってゴールの重さの小麦粉を集められるかどうかをチェックするメソッドです。使わない小麦粉のパックがあってもよいこととします。小麦粉の袋は開封してはいけません。そのままで使ってください。
メソッドの名前はcanPackです。
(1,0,4)false。5kgのパックひとつから4kgの小麦粉は取り出せません。
(1,0,5)true。 5kgのパックひとつから5kgの小麦粉は取り出せません。
(0,5,4)true 1kgのパック4から4kgの小麦粉は取りだせます。ただし、1kgの小麦粉一袋余りますがそれはよいです。
(2,2,11)true 5kgのパック2つ、1kgのパック1つから11kgの小麦粉が取り出せます。1kgの小麦粉一袋余りますがそれはよいです。
(-3,2,11)false。-3という数がはいっているのでfalseです。
#[わからない事]
模範解答のコードのreturn (goal%5 <= smallCount); // #3 regardless of bigCount, というところがよくわかりません。
もちろん、最低でも この条件が必要なのは理解できます。
必要条件だとは思うのですが、これは十分条件になりますか?
#[ネットで見つけた模範回答コード]
java
1ublic class FlourPacker { 2 public static boolean canPack(int bigCount, int smallCount, int goal){ 3 if(bigCount < 0 || smallCount < 0 || goal < 0) { // #1 validation 4 return false; 5 } 6 if(bigCount*5 + smallCount < goal) { // #2 supply must be greater than demand 7 return false; 8 } 9 return (goal%5 <= smallCount); // #3 regardless of bigCount, remainder of goal has to be less than smallCount 10 } 11}
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。