我对编程非常陌生,而我在使用这个程序时遇到麻烦,该程序希望用户输入一些名为novas的“外星硬币”,然后确定代表该金额所需的每个不同外星硬币的最少数量,从最高点开始。以下是硬币及其价值:
以下是一个示例输入和输出示例:
Enter number of novas: 64197 [Enter]
That number of novas is equal to:
2 auroras
32 pulsars
59 gravitons
3 novas
这是我的代码:
import java.util.Scanner;
public class AlienMoney {
public static void main(String[] args){
int startAmount, amount, auroras, pulsars, gravitons, novas;
Scanner input = new Scanner(System.in);
System.out.print("Enter number of novas: ");
amount = input.nextInt();
System.out.println("That number of novas is equal to: ");
startAmount = amount;
gravitons = amount / 6;
amount = amount % 6;
pulsars = amount / 70;
amount = amount % 70;
auroras = amount / 60;
amount = amount % 60;
novas = amount;
System.out.println(auroras + " auroras");
System.out.println(pulsars + " pulsars");
System.out.println(gravitons + " gravitons");
System.out.println(novas + " novas");
}
}
这是我的输出:
Enter number of novas: 64197 [Enter]
That number of novas is equal to:
0 auroras
0 pulsars
10699 gravitons
3 novas
我不确定我做错了什么。我知道我必须使用模数运算符%
来得到余数,但我不知道在那之后该怎么做。我非常感谢任何人的帮助。谢谢。
答案 0 :(得分:1)
您需要从最大的订单开始按正确的顺序计算货币。
所以: 极光>脉冲星>引力子>新星
而不是: 引力子>脉冲星>极光>新星
答案 1 :(得分:0)
下面的代码片段中的方法是计算三个硬币中每个硬币的数量,然后计算每个硬币用于表示输入金额的数量。
为了使用最少数量的硬币,我们应该首先使用尽可能多的极光,其余为脉冲星,然后使用引力子。
Parse error: syntax error, unexpected ':', expecting ';' or '{' in /myproject/app/cache/dev/appDevDebugProjectContainer.php on line 20043
答案 2 :(得分:-1)
就在这里,评论中指出问题行:
startAmount = amount;
gravitons = amount / 6;
amount = amount % 6;
pulsars = amount / 70; // <-- starts here
amount = amount % 70;
auroras = amount / 60;
amount = amount % 60;
novas = amount;
您正在使用错误的变量。请使用您指定所需金额的变量,例如:
startAmount = amount;
gravitons = amount / 6;
amount %= 6;
pulsars = gravitons / 70;
gravitons %= 70;
auroras = pulsars / 60;
pulsars %= 60;
novas = amount; // this doesn't need to change but there's no need to assign amount into a new variable
还使用%=
运算符。这很酷。 ;)