C++ 在不使用If/While/For语句或任何数据结构的情况下计算更改

C++ 在不使用If/While/For语句或任何数据结构的情况下计算更改,c++,C++,我试图编写一个程序,生成最小的变化量(25美分、5美分、10美分、1美分),但规定我不能使用任何类型的if、for、while语句 我相信这是可能的,但我的能力非常有限,似乎不知道如何在不违反规则的情况下实现这一点 下面的代码可以工作,当它运行到值0时接受,然后在尝试使用0上的模时中断(我认为): #包括 int main(){ 整数美分; 标准::美分; 四分之一整数=美分/25; 整数余数=美分%(四分之一*25); 整数一角=余数/10; 余数=余数%(十美分*10); 整数镍币=余数/5

我试图编写一个程序,生成最小的变化量(25美分、5美分、10美分、1美分),但规定我不能使用任何类型的if、for、while语句

我相信这是可能的,但我的能力非常有限,似乎不知道如何在不违反规则的情况下实现这一点

下面的代码可以工作,当它运行到值0时接受,然后在尝试使用0上的模时中断(我认为):

#包括
int main(){
整数美分;
标准::美分;
四分之一整数=美分/25;
整数余数=美分%(四分之一*25);
整数一角=余数/10;
余数=余数%(十美分*10);
整数镍币=余数/5;
余数=余数%(镍币*5);
整数便士=余数/1;
std::cout在这行中:

    remainder = remainder % (dimes*10);
允许余数变为0。这将导致此处被零除:

    int nickels = remainder/5; //0
    remainder = remainder % (nickels*5); // modulo 0 % 0
在这方面:

    remainder = remainder % (dimes*10);
允许余数变为0。这将导致此处被零除:

    int nickels = remainder/5; //0
    remainder = remainder % (nickels*5); // modulo 0 % 0

你可以这样做,而无需将每枚硬币的出现次数乘以它的出现次数。(模数做的是你试图自然做的事情。)


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

您可以这样做,而无需将每枚硬币的出现次数乘以它的出现次数。(模数的作用与您自然尝试的相同。)


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

若不使用
if
进行此操作,您可以根据找到的硬币缩小
美分并从那里继续。例如:

int quarters = cents / 25;
cents -= quarters * 25;

继续这样做。

要在不使用
if
的情况下执行此操作,您可以根据找到的硬币缩小
美分,然后继续。例如:

int quarters = cents / 25;
cents -= quarters * 25;
继续这样操作。

定义“中断”。是否中断故障?打印意外值(什么值)?擦除硬盘驱动器?定义“中断”。是否中断故障?打印意外值(什么值)?擦除硬盘驱动器?