Day024

xiaoxiao2021-02-28  29

1.输入两个正整数m和n,求其最大公约数和最小公倍数。

[html]  view plain  copy public class Example6 {        public static void main(String args[]){            gcdlcm a =new gcdlcm();           System.out.println("两数的最大公约数是:"+a.gcd(10, 16));           System.out.println("两数的最大公约数是:"+a.lcm(16, 10));       }            }    class gcdlcm{        int gcd(int m,int n){            if(m<n){   //这个判断是为了将大数放在前面            int temp=n;             n=m;             m=temp;                        }            if(m%n==0){                   return n;            }              else{                 m%=n;                 return gcd(m,n);               //这里也可以写成gcd(n,m),就省掉了前面的判断了,会快一点                 }          }        int lcm(int m,int n){            int i=1;            if(m<n){   //这个判断是为了将大数放在前面                int temp=n;                 n=m;                 m=temp;                            }            int lcm=m;            while(lcm%n!=0){                lcm=m*i;                i++;            }            return lcm;        }    }    

2.输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。

[html]  view plain  copy import java.util.Scanner;      public class Example {        public static void main(String[] args) {            // TODO Auto-generated method stub            int abcCount=0;//英文字母个数            int spaceCount=0;//空格键个数            int numCount=0;//数字个数            int otherCount=0;//其他字符个数            Scanner scan=new Scanner(System.in);            String str=scan.nextLine();            char[] ch = str.toCharArray();            for(int i=0;i<ch.length;i++){            if(Character.isLetter(ch[i])){            //判断是否字母            abcCount++;            }            else if(Character.isDigit(ch[i])){            //判断是否数字            numCount++;            }            else if(Character.isSpaceChar(ch[i])){            //判断是否空格键            spaceCount++;            }            else{            //以上都不是则认为是其他字符            otherCount++;            }            }            System.out.println("字母个数:"+abcCount);            System.out.println("数字个数:"+numCount);            System.out.println("空格个数:"+spaceCount);            System.out.println("其他字符个数:"+otherCount);            }      }    

3.将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。 (1)如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可。 (2)如果n<>k,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数你n,重复执行第一步。 

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

[html]  view plain  copy import java.util.*;     public class Example4{       public static void main(String[] args){         int x;        Scanner in = new Scanner(System.in);//定义从键盘输入         System.out.print("请输入一个正整数:");//提示         x = in.nextInt(); //将从键盘输入的数赋值给x         new PrimeSplit(x); //匿名初始化一个对象,还有参数的构造函数       }     }     class PrimeSplit{       int k = 2; //将最小的质数赋值给k       public PrimeSplit(int x){  //小于等于1的数不可以分解         if(x<=1){           System.out.println(x+"是无效的被分解数");         }         else if(x==2){           System.out.println(x+"分解后的质因数为: 1*"+x);   //如果输入的是最小质数2,         }else {           System.out.print(x+"分解后的质因数为: 1"); //1是所有的正整数的质数           while(k<=x){   //输入的数可以被k整除             if(x%k==0){               System.out.print("*"+k);           //将k添加到结果中               x = x/k;//除以最小质数后重新循环               }              else{               k++;               }             }           }         }          } 
转载请注明原文地址: https://www.6miu.com/read-2621175.html

最新回复(0)