【自学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();
        }
    }

}

 

posted @ 2020-03-12 21:31  一只奶鹿  阅读(140)  评论(0)    收藏  举报