zoukankan      html  css  js  c++  java
  • 菜鸟涂鸦作品展_No.4

    //【程序4】 题目:将一个正整数分解质因数。
    //例如:输入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的值,重复执行第一步。
    //这个题目很明显是要用递归算法来实现的,打印“*”有些技巧,但也很容易解决,程序如下:
    import java.io.*;

    public class _4_zhiyin {
    int zuixiao(int n){
    int flag,i,j;
    labell:
    for (i=2 ; i<=n ; i++){
    flag=0;
    for (j=2 ; j<=i ; j++){
    if (i%j==0)
    flag++;
    }
    if (flag==1 && n%i==0){
    System.out.print(i);
    break labell;
    }
    }
    //System.out.print(i);
    return i;
    }
    public static void main(String[] args) throws Exception{
    _4_zhiyin z=new _4_zhiyin();
    System.out.println("输入要分解的数值");
    InputStreamReader isr=new InputStreamReader(System.in);
    BufferedReader br=new BufferedReader(isr);
    int num=Integer.parseInt(br.readLine());
    int m=1;
    System.out.print(num+"=");
    do
    {
    m=z.zuixiao(num);
    if (num>m)
    System.out.print("*");
    num=num/m;
    }
    while(num/m>=1);
    }
    }

    涂鸦心得:

      搞了一早上,搞出这么一个小东西。试用了一下I/O输入,整个机制还是没搞明白,勉强先这样用着吧。另外,如果不加throws Exception的话会报错,java的抛出异常机制也是还没有搞清。使用了Integer.parseInt,把string型改为int。动手还是有收获的,继续吧。。。

  • 相关阅读:
    HTML-代码定义
    数组
    for。。。for嵌套if,if嵌套for。
    输入年月日, 判断输入的是否正确
    日期功能
    方程
    5.8 一维数组
    5.9 二维数组
    5.7 类
    5.4穷举,迭代
  • 原文地址:https://www.cnblogs.com/aniuer/p/2647032.html
Copyright © 2011-2022 走看看