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);
                         }
                     }
                 }
             }
         }
    }
  • 相关阅读:
    dt7.0中在sitemap.txt地图中新增热门搜索关键词记录
    dt7.0中加入站点地图(sitemap.txt)功能输出
    Spring基本功能-IOC
    Linux常见系统命令与文件操作
    Linux界面交互与目录结构
    Linux入门介绍
    学习Zookeeper需要了解的专业名词
    Zookeeper概述和基本概念
    使用Java操作MongoDB
    MongoDB的分布式部署
  • 原文地址:https://www.cnblogs.com/skylar/p/3673404.html
Copyright © 2011-2022 走看看