4、货物摆放

题目 货物摆放

image-ee9514d3

思路分析

image-d934d823

画图可以发现这个规律应该是和因数有关系的

盲猜一手 在所有因数里面 挑三个(可重复) 让三个的乘积等于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;

}

同类题型

视频讲解


⬅️ 3、直线 🏠 00-刷题理模型 ➡️ 5、路径