Java-每日编程练习题①

1.输出打印一个九九乘法表

  代码如下,很简单的一个for的嵌套循环即可实现

 1 /**
 2  * 输出9*9口诀。
 3  * 
 4  * @author ChenZX
 5  *
 6  */
 7 public class Test01 {
 8 
 9     public static void main(String[] args) {
10         for(int i=1;i<10;i++){
11             for(int j=1;j<=i;j++){
12                 System.out.print(j+"*"+i+"="+(i*j)+"\t");
13             }
14             System.out.println();
15         }
16     }
17 }

 

2.将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。

  对n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成:

  1)如果这个质数恰等于n,就说明分解质因数的过程已经结束,打印出即可。

  2)如果n <> k,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数你n,重复执行第一步(递归实现)。

  3)如果n不能被k整除,则用k+1作为k的值,重复执行第一步(递归实现)。

  详细代码如下:

 1 public class Test02 {
 2 
 3     public static void main(String[] args) {
 4         Scanner s = new Scanner(System.in);
 5         System.out.println("请输入要分解质因数的正整数:");
 6         int num = s.nextInt();  //键盘输入正整数num
 7         s.close();  //关闭输入(不需要输入的时候记得关闭输入)
 8         factor(num,2);  //调用分解质因数方法
 9     }
10     
11     /**
12      * 分解质因数
13      * @param n  要分解的正整数
14      * @param k  除数(最小的质数)
15      */
16     public static void factor(int n,int k){
17         if(n==k){   //若最小的质数正好等于正整数n(说明分解完成了)
18             System.out.print(k);  //则打印k值
19             return;  //结束方法   返回值类型为void的方法可调用return直接结束方法
20         }
21         if(n%k==0){  //若n能被k整除
22             System.out.print(k+"*"); //打印出k和乘号  
23             n= n/k;     //将商作为新的n值
24             factor(n,2);   //重新开始第一步
25         }else{     //若n不能被k整除
26             k= k+1;   //将k+1作为新的k值
27             factor(n,k);  //重新开始第一步
28         }
29         
30     }
31 }

猜你喜欢

转载自www.cnblogs.com/czxoy/p/10762910.html