Java基础编程练习:输入处理与斐波那契数列

需积分: 1 0 下载量 82 浏览量 更新于2024-09-11 1 收藏 35KB TXT 举报
"这篇资源包含了两个Java编程题目,旨在帮助初学者加深对Java语言的理解。第一个题目涉及到字符串处理、数组操作以及循环结构。第二个题目则关注质数判断和平方根运算。" 在Java编程中,基础题目的练习是提高技能的关键步骤。下面将详细解析这两个题目: ### 题目一 此题目的代码实现了一个名为`demo1`的类,包含两个方法:`function1`和`function2`。`main`方法创建了`demo1`的实例并不断调用`function1`。 在`function1`中: 1. 创建一个`Scanner`对象`ccc`用于从用户输入读取数据。 2. 用户输入的字符串通过`split("")`方法被分割成字符数组`c`。 3. 使用`for`循环遍历字符数组,每次迭代时,`i`值递增1,最后输出`i-2`的值。这部分代码似乎意图计算输入字符串的长度减2。 4. `function1`内部的`i`变量在循环结束后重置为1,这可能是一个设计上的错误,因为它没有在循环外部声明,所以每次调用`function1`都会重置`i`。 在`function2`中: 1. 同样创建一个`Scanner`对象`ccc`,但并未使用。 2. 接收用户输入的字符串`a1`,并从字符串`a2`中获取`i`位置的字符,然后递增`i`。 然而,`function2`并未被`main`方法调用,因此在当前代码结构下,它不会执行。 ### 题目二 这个题目要求找出101到200之间所有的质数,并使用`sqrt()`方法来优化质数判断的效率。 在`lianxi02`类的`main`方法中: 1. 初始化计数器`count`为0,用于记录找到的质数数量。 2. 使用一个`for`循环遍历101到200之间的偶数(步长为2)。 3. 对每个偶数`i`,内部嵌套一个`for`循环,从2开始检查到`Math.sqrt(i)`,检查是否能整除`i`。 4. 如果`i`能被任何2到`Math.sqrt(i)`之间的数整除,设置`b`为`false`并跳出内层循环;否则,`b`保持为`true`。 5. 如果`b`为`true`,表示`i`是质数,增加`count`并打印结果。 这个优化减少了判断次数,因为一个非质数肯定有因子小于或等于它的平方根。 总结来说,这两个题目覆盖了Java中的基本概念,如输入输出、字符串处理、数组操作、循环结构、条件判断、以及数学函数的使用。对于初学者来说,通过解决这些问题可以加深对这些基础知识的理解和应用。