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+"\tn值"+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+"\n最大公约数:"+c);
     }
}
java算法(二)

 

 

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

 

  

java算法(二)
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);
    }



}
java算法(二)

 

java算法(二),布布扣,bubuko.com

java算法(二)

上一篇:Java-将字符串转为数字


下一篇:微信h5,背景音乐自动播放