酷代码 AI
菜单
服务商

禾木和小核桃在迷宫角落里发现了n个箱子(n不超过20),和一把钥匙。每个箱子中都有一些玄铁石。只有当一个箱子的玄铁石数量,是钥匙上的数字的倍数时,禾木和小核桃才能把这个箱子里的玄铁石拿走。请你编写程序,计算他们总共能拿走多少玄铁石。c++

以下是使用C++编写的程序,用于解决禾木和小核桃从迷宫箱子中拿走玄铁石数量的问题: ```cpp #include <iostream> using namespace std; int main() { int n; // 箱子的数量 int key; // 钥匙上的数字 // 输入箱子的数量和钥匙上的数字 cin >> n >> key; int total = 0; // 能拿走的玄铁石总数 // 循环处理每个箱子 for (int i = 0; i < n; ++i) { int stones; // 当前箱子中的玄铁石数量 cin >> stones; // 判断当前箱子的玄铁石数量是否是钥匙数字的倍数 if (stones % key == 0) { total += stones; // 如果是倍数,将该箱子的玄铁石数量累加到总数中 } } // 输出能拿走的玄铁石总数 cout << total << endl; return 0; } ``` 代码解释: 1. 输入部分: - 首先,程序从用户那里读取箱子的数量`n`和钥匙上的数字`key`。 - 然后,使用`for`循环遍历每个箱子,在每次循环中读取当前箱子中的玄铁石数量`stones`。 2. 判断和累加部分: - 对于每个箱子的玄铁石数量`stones`,程序使用取模运算符`%`来判断它是否是钥匙数字`key`的倍数。 - 如果`stones % key == 0`,说明`stones`是`key`的倍数,将`stones`累加到`total`中。 3. 输出部分: - 程序输出能拿走的玄铁石总数`total`。 复杂度分析: - 时间复杂度:$O(n)$,其中`n`是箱子的数量。因为程序只需要遍历每个箱子一次。 - 空间复杂度:$O(1)$,只使用了常数级的额外空间。 [2025-12-20 19:13:45 | AI问答 | 481点数解答]

相关提问
发财导航,免费问AI
实用工具查看更多