gpt4 book ai didi

c++ - 在没有 If/While/For 语句或任何数据结构的情况下计算变化

转载 作者:太空宇宙 更新时间:2023-11-04 15:35:38 25 4
gpt4 key购买 nike

我正在尝试编写一个程序来生成最少的找零(五分硬币、五分硬币、一角硬币、一分硬币),但前提是我不能使用任何类型的 if、for、while 语句。

我确信这是可能的,但我的能力非常有限,而且似乎无法弄清楚如何在不违反规则的情况下完成这项工作。

以下代码有效,当它遇到值 0 时接受,然后在尝试对 0 使用模数时中断(我认为):

#include <iostream>

int main() {

int cents;

std::cout << "Enter an amount in cents less than a dollar:" << std::endl;
std::cin >> cents;

int quarters = cents/25;
int remainder = cents % (quarters*25);
int dimes = remainder/10;
remainder = remainder % (dimes*10);
int nickels = remainder/5;
remainder = remainder % (nickels*5);
int pennies = remainder/1;

std::cout << "Your change will be: " << "\n Q: " << quarters << "\n D: " << dimes << "\n N: " << nickels << "\n P: " << pennies;

return 0;
}

最佳答案

您可以在不将每个硬币乘以其出现次数的情况下执行此操作。 (无论如何,模数都会自然地完成您想要做的事情。)

int quarters = cents/25;
int remainder = cents % 25;
int dimes = remainder/10;
remainder = remainder % 10;
int nickels = remainder/5;
remainder = remainder % 5;
int pennies = remainder/1;

这样,您在任何情况下都不会对数字 0 使用模数。

关于c++ - 在没有 If/While/For 语句或任何数据结构的情况下计算变化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34621438/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com