[英]Using methods that rely on other methods
我正在尝试制作一个程序,告诉您进行零钱所需的最少硬币数量,并且它必须是模块化的。 目前它要求输入三次并打印所有三个输入的总和所需的硬币数量。 我相信这是因为 maxDimes 依赖于依赖于输入的 maxQuarters。 有什么办法可以让这些方法只运行一次? 我是编程和这个网站的新手,所以如果这个问题不清楚或已经被问到,我深表歉意。
public static int input()
{
System.out.println("Please enter amount of change under 100 cents: ");
Scanner input = new Scanner(System.in);
int change = input.nextInt();
if (change%5<2)
{
change = change+(change%5);
}
else if(change%5>2)
{
change = change-(change%5);
}
return change;
}
public static int[] maxQuarters()
{
int change = input();
int quarters = change/25;
int leftover = change-quarters;
return new int[] {quarters, leftover};
}
public static int[] maxDimes()
{
int first[] = maxQuarters();
int change = first[1];
int dimes = change/10;
int leftover = change-dimes;
return new int[] {dimes, leftover};
}
public static int maxNickels()
{
int second[] = maxDimes();
int change = second[1];
int nickels = change/5;
return nickels;
}
public static void makeChange()
{
int first[] = maxQuarters();
int quarters = first[0];
int second[] = maxDimes();
int dimes = second[0];
int nickels = maxNickels();
System.out.println("The minimum number of coins you could use is: "+quarters+"quarters, "+dimes+" dimes and "+nickels+" nickels");
}
public static void main(String[] args)
{
makeChange();
}
您被要求输入三次,因为您在maxQuarters()
内调用input()
maxQuarters()
。 在maxDimes()
和maxNickels()
调用maxQuarters()
等也input()
被调用。
解决此问题的一种可能方法是在main
方法中调用input()
并将输入作为参数传递给其他方法,如下所示:
public static int input() {
System.out.println("Please enter amount of change under 100 cents: ");
Scanner input = new Scanner(System.in);
int change = input.nextInt();
if (change % 5 < 2) {
change = change + (change % 5);
} else if (change % 5 > 2) {
change = change - (change % 5);
}
return change;
}
public static int[] maxQuarters(int input) {
int quarters = input / 25;
int leftover = input - 25*quarters;
return new int[]{quarters, leftover};
}
public static int[] maxDimes(int input) {
int first[] = maxQuarters(input);
int change = first[1];
int dimes = change / 10;
int leftover = change - 10*dimes;
return new int[]{dimes, leftover};
}
public static int maxNickels(int input) {
int second[] = maxDimes(input);
int change = second[1];
int nickels = change / 5;
return nickels;
}
public static void makeChange(int input) {
int first[] = maxQuarters(input);
int quarters = first[0];
int second[] = maxDimes(input);
int dimes = second[0];
int nickels = maxNickels(input);
System.out.println("The minimum number of coins you could use is: " + quarters + " quarters, " + dimes + " dimes and " + nickels + " nickels");
}
public static void main(String[] args) {
int input = input();
makeChange(input);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.