今天给大家带来三道题,题目并不是很难,加上我们之前的语言基础和对Java的简单入门,我想这些题大家也能很简单的写出来。
To:题解不一定是最完美的,也欢迎大家在公众号后台和小编讨论。
1、使用for、while、do…while分别实现在n!,并在n=10的情况下测试建议编写三个独立的方法。
To:这里小编是将三个用法分成了三个类,并用一个TestDemo类来分别调用这三个方法。总共四个类如下:
Test1类方法:
package Experience1.Test;
public class Test1 {
public void test(int k) {
int i=0,sum=0;
while(i<=k){
sum=i*(i+1);
i++;
}
System.out.println(sum);
}
}
while方法
Test2类方法:
package Experience1.Test;
public class Test2 {
public void tets2(int k){
int i=0,sum=0;
do{
sum=i*(i+1);
i++;
}while(i<=k);
System.out.println(sum);
}
}
do...while方法
Test3类方法:
package Experience1.Test;
public class Test3 {
public void test3(int k){
int i=0,sum=0;
for (i = 0; i <= k; i++) {
sum = i * (i + 1);
}
System.out.println(sum);
}
}
for方法
TestDemo类方法:
package Experience1.Test;
import java.util.Scanner;
public class TestDemo {
public static void main(String[] args) {
int k, sum=0;
Scanner sc = new Scanner(System.in);
k = sc.nextInt();//输入我们的n
Test1 t1 = new Test1();
Test2 t2 = new Test2();
Test3 t3 = new Test3();
System.out.println("第一个While方法:");
t1.test(k);
System.out.println("第二个Do while方法:");
t2.tets2(k);
System.out.println("第三个for方法:");
t3.test3(k);
}
}
主函数
运行结果:
2.创建如下的二维数组,并遍历数组
1 2 3 4 5
8 a b c
d e
To:只需使用一个简单的类进行打印输出操作。
ArrayTest类方法:
package Experience1.Array;
public class ArrayTest {
public void array(){
char[][] arr = new char[][]{{'1','2','3','4','5'},{'8','a','b','c'},{'d','e'}};
for(int i=0;i<arr.length;i++){
for(int j = 0;j<arr[i].length;j++){
System.out.print(arr[i][j]+" ");
}
System.out.println();//换行
}
}
public static void main(String[] args) {
ArrayTest arrayDemo = new ArrayTest();
arrayDemo.array();
}
}
运行结果:
3. 要求:判断一个数组中是否存在相同的元素,如果存在相同的元素则输出“重复”,否则输出“不重复”。
该题中如果需要判断数组中元素是否重复,则需要对数组中的元素进行两两比较,如果有任意一组元素相等,则该数组中的元素存在重复,如果任意一组元素都不相等,则表示数组中的元素不重复。
实现思路:假设数组中的元素不重复,两两比较数组中的元素,使用数组中的第一个元素和后续所有元素比较,接着使用数组中的第二个元素和后续元素比较,依次类推实现两两比较,如果有一组元素相同,则数组中存储重复,结束循环。把比较的结果存储在一个标志变量里,最后判断标志变量的值即可。
To:这题需要注意的是我们在判断一个数组是否重复时,所进行的判断需要我们在进行一轮循环时不能把它自身算进去,否则便是无限重复。
Demo类方法:
package Experience1.ArrayTest;
import java.util.Scanner;
public class Demo {
public void ArrTest1(){
int temp=0,flag=0;
Scanner sc = new Scanner(System.in);
System.out.println("请输入这个数组的大小:");
int k1 = sc.nextInt();
int arr1[] = new int[k1];
System.out.println("请输入数组的元素:");
//输入这个数组的元素
for(int i = 0; i < arr1.length;i++){
arr1[i] = sc.nextInt();
}
//分别比较两个数组的元素
for(int i = 0;i<arr1.length;i++){
for(int j = i+1;j<arr1.length;j++){
if(arr1[i]==arr1[j]){
flag=1;
break;
}
else{
temp++;
}
}
}
if(flag==1){
System.out.println("这个数组有重复的元素!");
}
else{
System.out.println("此个数组没有重复的元素!");
}
}
public static void main(String[] args) {
Demo tt = new Demo();
tt.ArrTest1();
}
}
运行结果: