您的位置:首页 > 其它

蓝桥杯-算法训练2 最大最小公倍数

2015-04-06 15:14 288 查看
刚做了,蓝桥杯算法训练的最大最小公倍数一题,感觉考查的是数学了,哈哈。

时间限制:1.0s 内存限制:256.0MB

问题描述

已知一个正整数N,问从1~N中任选出三个数,他们的最小公倍数最大可以为多少。

输入格式

输入一个正整数N。

输出格式

输出一个整数,表示你找到的最小公倍数。

样例输入

9

样例输出

504

数据规模与约定

1 <= N <= 10^6。

思路如下:

1. n是奇数,那就最大的三个数相乘

2. n是偶数,得分两种情况了,

①如果n不是3的倍数,那就s=n*(n-1)*(n-3)---n与n-2同为偶数,故排除一个n-2;

②n是3的倍数,s=(n-1)*(n-2)*(n-3),n与n-2同为偶数,排除n-2,但n与n-3均有3这个公约数,得排除n-3,那就用n-4么?多往后写几个数你就会发现这样下去根本不行。

所以只能用(n-1)*(n-2)*(n-3)。

代码如下

import java.util.Scanner;

public class Main {
	public static void main(String[] args){
		Scanner in=new Scanner(System.in);
		long n=in.nextLong();
		long s;
		if(n%2==1){
			s=n*(n-1)*(n-2);
		}
		else{
			if(n%3==0)
				s=(n-1)*(n-2)*(n-3);
			else
				s=n*(n-1)*(n-3);
		}
		System.out.println(s);
	}
}


但是上传测试出了小问题,分数只有60分,百思不得其解,网上查阅了很多,发现貌似这道题后台测试数据是错误的,(⊙o⊙)…

http://blog.csdn.net/u011669700/article/details/18702757
如有任何问题,欢迎留言。

祝君好运!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: