下の図で、totalNotes
変数が Eclipse で警告サイン付きで表示されるのはなぜですか? totalNotes
forループ内でのみ初期化したことが原因である場合、そのロジックにより、costOfSweet
変数も警告記号でマークされるべきではありませんか?
コード: java.io.BufferedReader をインポートします。import java.io.IOException; java.io.InputStreamReader をインポートします。java.util.stream.IntStream をインポートします。
public class BUYING2 {
static int sum,noOfSweets;
public static void main(String[] args) throws NumberFormatException, IOException {
BufferedReader input=new BufferedReader(new InputStreamReader(System.in));
int totalTestCases,costOfSweet,totalNotes;
int noteDenominations[];
String firstLineString,secondLineString;
String secondLineArray[];
totalTestCases=Integer.parseInt(input.readLine());
for(int i=0;i<totalTestCases;i++){
firstLineString=input.readLine();
secondLineString=input.readLine();
totalNotes=Integer.parseInt(firstLineString.split(" ")[0]);
costOfSweet=Integer.parseInt(firstLineString.split(" ")[1]);
secondLineArray=secondLineString.split(" ");
noteDenominations=new int[secondLineArray.length];
for(int k=0;k<secondLineArray.length;k++){
noteDenominations[k]=Integer.parseInt(secondLineArray[k]);
}
System.out.println(getNumberOfSweets(costOfSweet,noteDenominations));
}
}
public static int getNumberOfSweets(int costOfSweet,int noteDenominations[]) {
// TODO Auto-generated method stub
sum=IntStream.of(noteDenominations).sum();
noOfSweets=sum/costOfSweet;
int temp;
for(int j=0;j<noteDenominations.length;j++){
temp=noteDenominations[j];
noteDenominations[j]=0;
if(IntStream.of(noteDenominations).sum()/costOfSweet>=noOfSweets){
return -1;
}
noteDenominations[j]=temp;
}
return noOfSweets;
}
}