标题Problem A: 最小公倍数
Time Limit: 1 Sec Memory Limit: 128 MB
Description
两个正整数,计算这两个数的最小公倍数
Input
输入数据只有一行,包括两个不大于1000的正整数.
Output
输出数据也只有一行,给出这两个数的最小公倍数。
Sample Input Copy
10 14
Sample Output Copy
70
可能的Java代码:
import java.util.Scanner;
public class Main{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
int a = sc.nextInt();
int b = sc.nextInt();
int m = min(a, b);
System.out.print(a * b / m);
}
public static int min(int a, int b)
{
if(a < b)
{
int t = a;
a = b;
b = t;
}
while(b != 0)
{
if(a == b)
{
return a;
}
else
{
int k = a % b;
a = b;
b = k;
}
}
return a;
}
}
运行结果:
Problem: XXXX
User: XXXXXXXXXXX
Language: Java
Result: Accepted
Time:120 ms
Memory:10240 kb
另一种写法:(面对过程编程)
import java.util.*;
public class Main{
public static void main(String args[]) {
Scanner sc =new Scanner(System.in);
int x=sc.nextInt();
int y=sc.nextInt();
int a=x*y; //x*y
int b=x%y; //x%y
while(b!=0) //当存在余数且不为零,
{
x=y; //把y赋值给x
y=b; //把b赋值给y
b=x%y; //此时的x%y(当x对y取余不为零时,原先的y%b)赋值给b
}
System.out.println(a/y); //
}
}
运行结果:
Problem: XXXX
User: XXXXXXXXXXX
Language: Java
Result: 正确
Time:117 ms
Memory:10188 kb
其他的可能Java代码(更简洁的不要不要好不好):
import java.util.Scanner;
public class Main{
public static void main(String[] args)
{
Scanner input=new Scanner(System.in);
int m=input.nextInt();
int n=input.nextInt();
int max=(m>n)?m:n;
for(int i=max;i<m*n;i++)
{
if(i%m==0&&i%n==0)
{
System.out.println(i);
break;
}
}
}
}
运行结果:
Problem: XXXX
User: XXXXXXXXXXX
Language: Java
Result: Accepted
Time:115 ms
Memory:10208 kb
END