【自学java笔记#第十一天#】Java的基本程序设计结构
选用教材:《Java核心技术卷一》
第三章 Java的基本程序设计结构
第一题:分解质因数
1、自定义函数的解法:
package homework; import java.util.Scanner; //import java.util.Scanner; public class FactorizationFactor { public static void main(String[] args) { @SuppressWarnings("resource") Scanner in=new Scanner(System.in); System.out.print("请输入一个正整数:"); int n=in.nextInt(); decompose(n); //自定义一个分解函数 } private static void decompose(int n) { System.out.print(n+"="); for (int i=2;i<n+1;i++) { while (n%i==0 && n!=i) { n/=i; System.out.print(i+"*"); } if(n==i) { System.out.println(i); break; } } } }
2、单纯用循环解:
package homework; import java.util.Scanner; public class FactorizationFactor1 { public static void main(String[] args) { Scanner in = new Scanner(System.in); System.out.print("请输入一个正整数:"); int n = in.nextInt(); System.out.print(n+"="); int k; for (k=1;k<n+1;k++) { while (n%k==0 && n!=k &&k!=1) { n/=k; System.out.print(k+"*"); } if (k==n) { System.out.println(k); break; } } in.close(); } }
第二题:用辗转相除法计算最大公约数和最小公倍数:
package homework; import java.util.Scanner; public class EuclideanAlgorithm { public static void main(String[] args) { Scanner in=new Scanner(System.in); System.out.print("请输入一个正整数:"); int m=in.nextInt(); System.out.print("请再输入一个正整数:"); int n=in.nextInt(); int max=Math.max(m, n); int min=Math.min(m, n); System.out.printf("%d和%d的最大公约数和最小公倍数分别是:",m,n); int r=1; int d=max*min; if(max%min==0) { System.out.print(min); System.out.println("和"+max); } else if(max%min!=0) { while(max%min>0) { r=max%min; max=min; min=r; } System.out.print(min+"和"); System.out.println(d/min); in.close(); } } }
浙公网安备 33010602011771号