zoukankan      html  css  js  c++  java
  • java算法(二)

    四、最小公倍数最大公约数问题:

          分析:两个数的最小公倍数等于两个数相乘再除以他们的最大公约数,因此只要求出最大公约数就可以啦。

    package JingDian;
    
    public class yuebeishu {
        //用来求最大公约数的函数(debug看结果吧,好巧妙)
        public static int gcd(int m,int n)
        {
            while(true)
            {
               if((m=m%n)==0)
               {
                   return n;
                   
               }    
               if((n=n%m)==0)
               {
                   return m;
               }
               System.out.println("m值"+m+"	n值"+n);
            }
        }
         public static void main(String[] args)
           throws Exception
         {
             int a=23,b=32;
             int c=gcd(a,b);
             System.out.println("最小公倍数:"+a*b/c+"
    最大公约数:"+c);
         }
    }

     五、求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。例如2+22+222+2222+22222

     

      

    package JingDian;
    
    import java.io.InputStreamReader;
    import java.util.Scanner;
    
    
    public class dieshuhe {
        public static void main(String[] args)
        {
            
            System.out.println("请输入最大的a的值:");
            int result =0;
            int st = 0;
            int i=1;
            //获取键盘输入
            Scanner sc = new Scanner(new InputStreamReader(System.in));
            String input = sc.next();
            String [] str=new String[input.length()];
            
            for(int tmp=0;tmp<input.length();tmp++)
            {
                
                if(i>input.length())
                {
                    break;
                }
                //str[tmp]中装的是input的前tmp个字母因此本程序不仅可以计算当a输入为4444时候4+44+444+4444这样的表达式,
                //还可以计算a暑促为432时4+43+432这样的表达式,只要输入最大的那个数就可以了。
                str[tmp]=input.substring(0,i);
                i++;
                //将str[tmp]解析为整数进行相加
                st = Integer.parseInt(str[tmp]);
                result = result + st;
                
                
            }
            
            
            
            System.out.println(result);
        }
    
    
    
    }

     六、排列组合数问题

           题目: 有数字1,2,3,4,能组成多少个互不相同且无重复数字的三位数?都是多少?

           分析:先组成数,再去掉重复的数字(so easy)

    package JingDian;
    
    public class pailieshu {
         public static void main(String[] args){
             
             for(int i=1;i<=4;i++)
             {
                 for(int j=1;j<=4;j++)
                 {
                     for(int k=1;k<=4;k++)
                     {
                         if(i!=j&&j!=k&&k!=i)
                         {
                             System.out.println(i*100+j*10+k);
                         }
                     }
                 }
             }
         }
    }
  • 相关阅读:
    ES6-Generator
    ES6-Iterator & for...of循环
    ES6-Proxy and Reflect
    在Main中定义student的结构体,进行年龄从大到小依次排序录入学生信息。(结构体的用法以及冒泡排序)
    函数的调用(取两个整型变量中的最大值)
    将一个字符串数组的元素的顺序进行翻转。。
    枚举类型练习
    利用Arraylist输入学生的成绩,求出平均分和总分。
    简单的推箱子游戏(利用数组)
    枚举类型的声明
  • 原文地址:https://www.cnblogs.com/skylar/p/3673404.html
Copyright © 2011-2022 走看看