4、货物摆放
题目 货物摆放
思路分析
画图可以发现这个规律应该是和因数有关系的
盲猜一手 在所有因数里面 挑三个(可重复) 让三个的乘积等于n
然后把前面几个套进去 发现是成立的
注意一个问题 n是16位的 int只能放9位 所以得用long long (19位)
又被恶心到了呢 。。。 本来想出来就已经够折磨的了 还卡这里 一下没注意不就寄了
代码实现
#include<bits/stdc++.h>
using namespace std;
typedef long long LL;
vector<LL> factor;
int main()
{
LL n;
n=2021041820210418;
for(int i=1;i<=n/i;i++){
if(n%i==0){
factor.push_back(i);
if(n/i!=i)
factor.push_back(n/i);
}
}
sort(factor.begin(),factor.end());
// for(auto a:factor) cout<<a<<" ";
int num=factor.size();
int cnt=0;
for(int i=0;i<num;i++){
for(int j=0;j<num;j++){
for(int k=0;k<num;k++){
if(factor[i]*factor[j]*factor[k]==n){
cout<<factor[i]<<" "<<factor[j]<<" "<<factor[k]<<endl;
cnt++;
}
}
}
}
cout<<cnt;
//cout<<"2430";
return 0;
}
💬 评论