这次我们来说剩下的几道题,后面的题都挺简单的,让我们一起来看看吧!
思路分析:这道题是找n1和n2除了1以外的最大的公约数,其实步骤题目当中也给出我们了,只需按照步骤一步一步来就行了,具体来看吧。
第一步:输入两个整数n1和n2,将gcd初始化为1;
第二步:判断n1和n2的大小,再进行计算,具体过程详见代码;
第三步:编写代码。
import java.util.*;
public class Demo03_12{
public static void main(String[] args){
Scanner scanner = new Scanner(System.in);
System.out.print("输入两个数:");
int n1 = scanner.nextInt();
int n2 = scanner.nextInt();
int gcd = 1;
for(int i=n1<n2?n1:n2;i>=1;i--){
if(n1%i==0 && n2%i==0){
gcd = i;
break;
}
}
System.out.println(n1 + "和" + n2 + "的最大公约数是" + gcd);
}
}
运行结果:
输入两个数:24 48
24和48的最大公约数是24
输入两个数:1 5
1和5的最大公约数是1
思路分析:这道题很短,其实也不难,它是让我们输入一个整数,然后升序显示它的所有最小因子,很简单,一个循环就够了,直接来看代码吧。
import java.util.*;
public class Demo03_13{
public static void main(String[] args){
Scanner scanner = new Scanner(System.in);
System.out.print("输入一个整数:");
int num = scanner.nextInt();
while(true){
for(int i=2;i<=num;i++){
if(num%i==0){
System.out.print(i+" ");
num/=i;
break;
}
}
if(num==1){
break;
}
}
}
}
运行结果:
输入一个整数:120
2 2 2 3 5
第一步:行数定为line,这需要用到for循环;
第二步:紧接着我们要用循环输出空格。因为每个数字和每个数字之间都要有空格来分开;
第三步:分析每行数字之间的规律,需要用到绝对值;
第四步:编写代码。
/*
4 3 2 1 2 3 4
-3 -2 -2 0 1 2 3
第4行 x∈[-3,3] y=|x|+1
第5行 x∈[-4,4] y=|x|+1
*/
import java.util.*;
class Demo03_14{
public static void main(String[] args){
Scanner scanner = new Scanner(System.in);
System.out.print("Enter the line number:");
int line = scanner.nextInt();
for(int i = 1;i < line;i++){
for(int k = 1;k<line-i;k++){
System.out.print(" ");//每循环一次打印四个空格
}
for(int j=-(i-1);j<=i-1;j++){
double a = Math.abs(j) + 1;
System.out.printf("%4.0f",a);//格式化输出,每个数字占4个大小
}
System.out.println();
}
}
}
运行结果:
Enter the line number:8
1
2 1 2
3 2 1 2 3
4 3 2 1 2 3 4
5 4 3 2 1 2 3 4 5
6 5 4 3 2 1 2 3 4 5 6
7 6 5 4 3 2 1 2 3 4 5 6 7