蓝桥杯算法训练 最大最小公倍数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的话乘完就已经溢出了