酷代码 AI
菜单
服务商

c++有n棵树排成一行,高度为a[1]到a[n],其中第1棵树上有一只小猫,正准备跳到第2棵树上,然后跳到第3棵树上,以此类推……但是小猫只能跳到高度比当前树低的树上,那么它能否跳到第n棵树上呢?例如5棵树高度分别为5、4、3、2、2,则前4棵树都能跳到,但是不能从第4棵跳到第5棵。所以答案是no。 输入: 第一行一个数n(n<100)。 第二行n个数,依次表示树木高度。 输出: 能跳到第n棵树上的话输出"yes"否则输出"no"。

以下是解决该问题的C++代码: ```cpp #include <iostream> using namespace std; int main() { int n; // 读取树的数量 cin >> n; int a[100]; // 读取每棵树的高度 for (int i = 0; i < n; i++) { cin >> a[i]; } bool canReach = true; // 检查是否能从第i棵树跳到第i+1棵树 for (int i = 0; i < n - 1; i++) { if (a[i] <= a[i + 1]) { canReach = false; break; } } if (canReach) { cout << "yes" << endl; } else { cout << "no" << endl; } return 0; } ``` 代码解释: 1. 读取输入:首先读取树的数量`n`,然后使用循环读取每棵树的高度,存储在数组`a`中。 2. 检查跳跃条件:使用一个循环遍历数组,检查是否能从第`i`棵树跳到第`i + 1`棵树。如果第`i`棵树的高度小于等于第`i + 1`棵树的高度,说明小猫不能跳到下一棵树,将`canReach`标记为`false`并跳出循环。 3. 输出结果:根据`canReach`的值输出相应的结果。如果`canReach`为`true`,输出`yes`;否则输出`no`。 [2026-01-16 19:37:12 | AI问答 | 385点数解答]

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