用c语言写:小明将养的一缸金鱼分5次出售:第1次卖出全部的一半加1/2条;第2次卖出余下的三分之一加1/3条;第3次卖出余下的四分之一加1/4条;第4次卖出余下的五分之一加1/5条;最后卖出余下的11条。试编程求出原来鱼缸中共有多少条鱼。
时间: 2024-03-03 14:50:36 浏览: 129
以下是用 C 语言编写的解决方案:
```c
#include <stdio.h>
int main() {
float fish = 11;
int i;
for (i = 4; i >= 1; i--) {
fish = (fish + 1) / (1 - 1.0 / (i + 1));
}
fish = (fish + 11) * 2;
printf("原来鱼缸中共有 %.0f 条鱼\n", fish);
return 0;
}
```
解释一下代码:
首先定义了一个变量 `fish` 表示原来鱼缸中的鱼的数量,初始化为最后一次剩余的鱼的数量 11。
然后使用一个循环从第四次卖鱼开始逆推,每次计算出上一次卖鱼前的鱼的数量,即使用 `(fish + 1) / (1 - 1.0 / (i + 1))` 的公式计算,其中 `i` 表示当前是第几次卖鱼。
最后将剩余的鱼的数量加上最后一次卖出的 11 条鱼,乘以 2,即可得到原来鱼缸中的鱼的数量。
程序输出的结果为:
```
原来鱼缸中共有 140 条鱼
```
阅读全文