蓝桥杯算法训练 最大最小公倍数C++

蓝桥杯算法训练 最大最小公倍数C++

代码:

代码来自:(别人写了详细思路) https://blog.****.net/wr132/article/details/43538151

#include<iostream>
using namespace std;
int main()
{
	long long n,ans;
	cin>>n;
	if(n<3)ans=n;
	else if(n%2!=0)ans=n*(n-1)*(n-2);
	else 
	{
		if(n%3==0)ans=(n-1)*(n-2)*(n-3);
		else ans=n*(n-1)*(n-3);
	}	
	cout<<ans<<endl;
	return 0;
}

心得:

作为一只小菜鸡这是第一次接触贪心算法,2013更新的老题目网上各路大神已经把该题思路写的很清楚了。可是自己敲一遍就是不通过,照着改成long long型的才通过了 ,这就很迷啊,106=1000 000 < 2 147 483 647=232-1. n用int型ans用long long不就够了嘛 困惑???

二更:

n若为int型,则n*(n-1)*(n-2)的结果是什么类型?
噢就算ans用long long,n用int的话乘完就已经溢出了