黑马程序员技术交流社区

标题: 可能会面试的题 [打印本页]

作者: knockout    时间: 2015-9-10 21:31
标题: 可能会面试的题
  1. /*
  2. 【程序4】
  3. 题目:将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。
  4. 程序分析:对n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成:
  5. (1)如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可。
  6. (2)如果n<>k,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数n,重复执行第一步。
  7. (3)如果n不能被k整除,则用k+1作为k的值,重复执行第一步。
  8. */

  9. import java.util.Scanner;
  10. class FenJieYinShu
  11. {
  12.         public static void main(String[] args)
  13.         {
  14.                 Scanner sc = new Scanner(System.in);
  15.                 System.out.println("请输入需要分解质因数的数:");
  16.                 int num=sc.nextInt();
  17.                 System.out.print(num+"=");
  18.                 fenJieZhiYinShu(num);
  19.         }
  20.         public static void fenJieZhiYinShu(int num)
  21.         {
  22.                 int a=num;
  23.                 for(int i=2;i<=a/2;i++)
  24.                 {
  25.                         while(num%i==0)
  26.                         {
  27.                                 num=num/i;
  28.                                 System.out.print(i+"*");
  29.                         }

  30.                 }
  31.                 System.out.println("\b ");
  32.                
  33.         }
  34. }


  35. /*
  36. import java.util.Scanner;
  37. class FenJieYinShu
  38. {
  39.         public static void main(String[] args)
  40.         {
  41.                 Scanner sc = new Scanner(System.in);
  42.                 System.out.println("请输入需要分解质因数的数:");
  43.                 int num=sc.nextInt();
  44.                 int k=2;
  45.                 System.out.print(num+"=");
  46.                 while(k<=num)
  47.                 {
  48.                         if(k==num)
  49.                         {
  50.                                 System.out.println(num);
  51.                                 break;
  52.                         }
  53.                         else if (num%k==0)
  54.                         {
  55.                                 System.out.print(k+"*");
  56.                                 num=num/k;
  57.                         }
  58.                         else
  59.                         {
  60.                                 k++;
  61.                         }
  62.                 }
  63.         }
  64. }
  65. */
复制代码

作者: 灰色头像HD    时间: 2015-9-10 22:36
能看的懂,估计写不出来。你已经在上基础班了?
作者: 星空01田    时间: 2015-9-10 22:38
谢谢分享,收藏下来。。。
作者: kenfans    时间: 2015-9-10 22:59
帮顶帮顶




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2