java读入一个整数 m,查找数组中是否有m。若有,则输出yes;若无,则将 m 插入到数组中,并保持数组仍然有序。如果读入的m或n非正数,则输出error。
时间: 2024-10-14 17:10:44 浏览: 21
在Java中,你可以使用ArrayList或Arrays.sort等方法来解决这个问题。这里是一个简单的步骤:
1. 首先,创建一个动态数组,例如ArrayList<Integer>,用于存储整数。
2. 当读取整数`m`时,检查它是否是非正数。如果是,输出"error"并结束程序。
3. 使用循环遍历当前数组,对比每个元素和`m`。如果找到相等的值,输出"yes"并停止程序。
4. 如果遍历完整个数组都没有找到`m`,说明需要将其添加到数组中。在添加前,可以先判断数组是否已满。如果未满,直接用`add(m)`方法添加。然后使用Collections.sort()或自定义排序算法保证数组有序。
5. 添加`m`后,再次检查数组是否包含`m`,如果不包含,表示已经插入并且数组仍有序。
以下是伪代码形式的示例:
```java
ArrayList<Integer> array = new ArrayList<>();
// 初始化数组...
while (true) {
int m = readInteger(); // 从输入读取整数
if (m <= 0) {
System.out.println("error");
break;
}
// 检查数组中是否存在m
boolean found = false;
for (int i : array) {
if (i == m) {
System.out.println("yes");
found = true;
break;
}
}
// 插入m并保持数组有序
if (!found) {
array.add(m);
Collections.sort(array); // 或者使用更复杂的排序算法
}
}
```
阅读全文