Day024

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

[java] view plain copy
  1. public class text {    
  2.     public static void main(String args[]){     
  3.        gcdlcm a =new gcdlcm();    
  4.        System.out.println("兩數的最大公約數是:"+a.gcd(1016));    
  5.        System.out.println("兩數的最小公倍數是:"+a.lcm(1610));    
  6.    }            
  7. }    
  8. class gcdlcm{    
  9.     int gcd(int m,int n){    
  10.         if(m<n){   //這個判斷是爲了將大數放在前面    
  11.          int temp=n;    
  12.          n=m;    
  13.          m=temp;                
  14.         }    
  15.         if(m%n==0){       
  16.             return n;    
  17.         }    
  18.           else{    
  19.              m%=n;    
  20.              return gcd(m,n);     
  21.           //這裡也可以寫成gcd(n,m),就省掉了前面的判斷了,會快一點    
  22.              }      
  23.     }    
  24.     int lcm(int m,int n){    
  25.         int i=1;    
  26.         if(m<n){   //這個判斷是爲了將大數放在前面    
  27.              int temp=n;    
  28.              n=m;    
  29.              m=temp;                
  30.             }    
  31.         int lcm=m;    
  32.         while(lcm%n!=0){    
  33.             lcm=m*i;    
  34.             i++;    
  35.         }    
  36.         return lcm;    
  37.     }    
  38. }    


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


[java] view plain copy
  1. public class test1 {    
  2.     public static void main(String[] args) {    
  3.         // TODO Auto-generated method stub    
  4.         int abcCount=0;//英文字母个数    
  5.         int spaceCount=0;//空格键个数    
  6.         int numCount=0;//数字个数    
  7.         int otherCount=0;//其他字符个数    
  8.         Scanner scan=new Scanner(System.in);    
  9.         String str=scan.nextLine();    
  10.         char[] ch = str.toCharArray();    
  11.         for(int i=0;i<ch.length;i++){    
  12.         if(Character.isLetter(ch[i])){    
  13.         //判断是否字母    
  14.         abcCount++;    
  15.         }    
  16.         else if(Character.isDigit(ch[i])){    
  17.         //判断是否数字    
  18.         numCount++;    
  19.         }    
  20.         else if(Character.isSpaceChar(ch[i])){    
  21.         //判断是否空格键    
  22.         spaceCount++;    
  23.         }    
  24.         else{    
  25.         //以上都不是则认为是其他字符    
  26.         otherCount++;    
  27.         }    
  28.         }    
  29.         System.out.println("字母个数:"+abcCount);    
  30.         System.out.println("数字个数:"+numCount);    
  31.         System.out.println("空格个数:"+spaceCount);    
  32.         System.out.println("其他字符个数:"+otherCount);    
  33.         }    
  34.     
  35. }    
3 题目:将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。
(1)如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可。
(2)如果n<>k,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数你n,重复执行第一步。
(3)如果n不能被k整除,则用k+1作为k的值,重复执行第一步。


[java] view plain copy
  1. public class test3{     
  2.   public static void main(String[] args){     
  3.     int x;    
  4.     Scanner in = new Scanner(System.in);//定义从键盘输入     
  5.     System.out.print("请输入一个正整数:");//提示     
  6.     x = in.nextInt(); //将从键盘输入的数赋值给x     
  7.     new PrimeSplit(x); //匿名初始化一个对象,还有参数的构造函数     
  8.   }     
  9. }     
  10. class PrimeSplit{     
  11.   int k = 2//将最小的质数赋值给k     
  12.   public PrimeSplit(int x){  //小于等于1的数不可以分解     
  13.     if(x<=1){     
  14.       System.out.println(x+"是无效的被分解数");     
  15.     }     
  16.     else if(x==2){     
  17.       System.out.println(x+"分解后的质因数为: 1*"+x);   //如果输入的是最小质数2,     
  18.     }else {     
  19.       System.out.print(x+"分解后的质因数为: 1"); //1是所有的正整数的质数     
  20.       while(k<=x){   //输入的数可以被k整除     
  21.         if(x%k==0){     
  22.           System.out.print("*"+k);           //将k添加到结果中     
  23.           x = x/k;//除以最小质数后重新循环     
  24.           }     
  25.          else{     
  26.           k++;     
  27.           }     
  28.         }     
  29.       }     
  30.     }        
  31.   }   

猜你喜欢

转载自blog.csdn.net/zhou_jiepeng/article/details/80660644