在编程啦网站上做的一个题,总是说结果错误,实在找不出是哪错了了,求指教······

Xeon-Shao 2012-03-18 10:30:59
题目是这样的
超级最小公倍数
时间限制:8000 ms | 内存限制:16384 KB
描述
给2个正整数a,b(1<=a,b<=10100),求a和b的最小公倍数。

输入
输入包含多组数据,每组数据一行,包含两个正整数a和b,中间以一个空格隔开。输入以0 0结束。

输出
每组数据输出一行,为a,b的最小公倍数。

样例输入
123 321
123456789 987654321
0 0
样例输出
13161
13548070123626141



我的程序是

import java.util.Scanner;
public class Main{
public static void main(String[] args){
Scanner scan=new Scanner(System.in);
long a=scan.nextInt();
long b=scan.nextInt();
while(a!=0&&b!=0){
long g=commonDivisor(a, b);
long a1=a/g;
long a2=b/g;
System.out.println(a1*g*a2);
a=scan.nextInt();
b=scan.nextInt();
}
}

public static long commonDivisor(long M, long N){

if(N==0)
return M;
else
return commonDivisor(N,M%N);

}
}
...全文
132 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
hnu_0720 2012-03-19
  • 打赏
  • 举报
回复
这个题目出的有点问题:请注意题目中样例
题目的描述
给2个正整数a,b(1<=a,b<=10100),求a和b的最小公倍数。
题目的样例:
样例输入
123 321
123456789 987654321
0 0
样例输出
13161
13548070123626141
很明显有矛盾啊,他说q,b的范围在 1~10100,但是例子不是哦.我觉得这个题目的意思应该是考大数吧?
ncist_jianeng 2012-03-18
  • 打赏
  • 举报
回复
不知lz什么错误,我机器上运行没错
24K純帥 2012-03-18
  • 打赏
  • 举报
回复
代码是对的,可是LZ你没验证输入的合法性,可能是字母,也可能范围不是int的

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧