【发布时间】:2021-12-13 01:21:34
【问题描述】:
(我比较新,刚开始攻读“软件开发”学位,刚刚完成我学年的第一个季度,所以,请尽量不要对我太过技术化。哈哈)
使用 Kotlin--
如何从“3.15”的输入中得到“3 Dollars, 1 Dime, 1 Nickel, 0 Pennies”?
我已经得到它,以便我可以得到剩余的单个数量,但不能让它以上述格式作为一个整体执行。
我尝试了各种编码方式(如下所示)。
PS: 我愿意接受任何和所有更改,尽管我需要需要将 func 部分保持为 double,&,“如果,如果 else,else”复数化。(即:如果是“1 dollar”或“2 dollars”需要保持不变)。
这是代码本身: 有趣的 main(){
if (getDollar(1.22) <= 0.0)
{
println("You have "+ Math.round(getDollar(1.22)*100/100) + " Dollar");
}
else if
(getDollar(1.22) == 1.0)
{
println("You have "+ Math.round(getDollar(1.22)*100/100) + " Dollar");
}
else {
(getDollar (1.22) <= 2)
println("You have "+ Math.round(getDollar(1.22)*100/100) + " Dollars");
};
/* break */
if (getQuarter(1.22) <= 0.0)
{
println("You have "+ Math.round(getQuarter(1.22)*100/100) + " Quarter");
}
else if
(getQuarter(1.22) <= 1)
{
println("You have "+ Math.round(getQuarter(1.22)*100/100) + " Quarter");
}
else {
(getQuarter (1.22) <= 2)
println("You have "+ Math.round(getQuarter(1.22)*100/100) + " Quarters");
};
/* break */
if (getDime(1.22) <= 0.0)
{
println("You have "+ Math.round(getDime(1.22)*100/100) + " Dime");
}
else if (getDime(1.22) <= 1)
{
println("You have "+ Math.round(getDime(1.22)*100/100) + " Dime");
}
else {
(getDime (1.22) <= 2)
println("You have "+ Math.round(getDime(1.22)*100/100) + " Dimes");
};
/* break */
if (getNickel(1.22) <= 0.0)
{
println("You have "+ Math.round(getNickel(1.22)*100/100) + " Dollar");
}
else if (getNickel(1.22) <= 1)
{
println("You have "+ Math.round(getNickel(1.22)*100/100) + " Nickel");
}
else {
(getNickel (1.22) <= 2)
println("You have "+ Math.round(getNickel(1.22)*100/100) + " Nickels");
};
/* break */
if (changeDue(1.22) <= 0.0)
{
println("You have "+ Math.round(changeDue(1.22)*1000/100) + " Penny");
}
else if (changeDue(1.22) >= 1)
{
println("You have "+ Math.round(changeDue(1.22)*1000/100) + " Penny");
}
else {
(changeDue (1.22) <= 2)
println("You have "+ Math.round(changeDue(1.22)*1000/100) + " Pennies");
};
println("")
/* 中断 */
if (getDollar(.38) <= 0.0)
{
println("You have "+ Math.round(getDollar(.38)*100/100) + " Dollar");
}
else if
(getDollar(.38) == 1.0)
{
println("You have "+ Math.round(getDollar(.38)*100/100) + " Dollar");
}
else {
(getDollar (.38) <= 2)
println("You have "+ Math.round(getDollar(.38)*100/100) + " Dollars");
};
/* break */
if (getQuarter(.38) <= 0.0)
{
println("You have "+ Math.round(getQuarter(.38)*100/100) + " Dollar");
}
else if
(getQuarter(.38) <= 1)
{
println("You have "+ Math.round(getQuarter(.38)*100/100) + " Quarter");
}
else {
(getQuarter (.38) <= 2)
println("You have "+ Math.round(getQuarter(.38)*100/100) + " Quarters");
};
/* break */
if (getDime(.38) <= 0.0)
{
println("You have "+ Math.round(getDime(.38)*100/100) + " Dollar");
}
else if (getDime(.38) <= 1)
{
println("You have "+ Math.round(getDime(.38)*100/100) + " Dime");
}
else {
(getDime (.38) <= 2)
println("You have "+ Math.round(getDime(.38)*100/100) + " Dimes");
};
/* break */
if (getNickel(.38) <= 0.0)
{
println("You have "+ Math.round(getNickel(.38)*100/100) + " Dollar");
}
else if (getNickel(.38) <= 1)
{
println("You have "+ Math.round(getNickel(.38)*100/100) + " Nickel");
}
else {
(getNickel (.38) <= 2)
println("You have "+ Math.round(getNickel(.38)*100/100) + " Nickels");
};
/* break */
if (changeDue(.38) <= 0.0)
{
println("You have "+ Math.round(changeDue(.38)*100/100) + " Penny");
}
else if (changeDue(.38) >= 1)
{
println("You have "+ Math.round(changeDue(.38)*1000/100) + " Penny");
}
else {
(changeDue (.38) <= 2)
println("You have "+ Math.round(changeDue(.38)*1000/100) + " Pennies");
};
};
/* "Main() 结束") */
fun getDollar(a: Double): Double {return Math.floor(a) };
fun getQuarter(a: Double): Double {
return Math.floor(a/.25);
};
fun changeDue(a: Double): Double {
return (a%.25);
};
fun getDime(a: Double): Double {
return (a/.10);
};
fun getNickel(a: Double): Double {
return (a/.05);
};
【问题讨论】:
-
代码中出现的“1.22”是什么?
-
1.22 是让它运行的测试值。 (大多数时候,它不起作用,直到我把它说成是“var = 1.22”。我想知道为什么,但这就是正在发生的事情。lo)
-
感谢您的帖子。它确实有帮助,尽管我现在太累了,无法完全理解它。大声笑(虽然,我不确定它是否完全解决了我吐出输出变化的问题,有时它与输入匹配,有时它要么全部显示为“0”,要么偏移一个数字或所以。)我主要想弄清楚的是为什么它没有正确拆分代码。
-
编辑:我又看了一遍。它确实提供了所需的代码(尽管我需要将其分成 5 件),但我仍然需要查看“为什么”我的失败。大声笑