返回题解分享
讨论 / 题解分享/ 帖子详情

货物摆放(结果填空) - 题解

不学vector都能看懂的程序,但是得跑近10min的版本,人菜轻喷

#include<bits/stdc++.h>
using namespace std;

long long n=2021041820210418; 
long long allnum[3];

long long judge()
{//判断allnum中有多少个一样的 
	long long a1=allnum[0],a2=allnum[1],a3=allnum[2];
	if(a1!=a2 && a1!=a3 && a2!=a3) return 6;
	else if(a1!=a3&&(a2==a1||a2==a3)) return 3;//2个一样 
	else if(a1!=a2&&(a3==a1||a3==a2)) return 3;
	else if(a2!=a3&&(a1==a2||a1==a3)) return 3;
	else if(a1==a2&&a1==a3) return 1;//3个一样 
}

int main()
{
	long long cnt=0,ans=0;
	for(long long i=1;i*i*i<=n;i++)
	for(long long j=1;j*j<=n/i;j++)
	{
		long long t=(n/i)/j;
		if(i*j*t==n && i>0&&j>0&&t>0 && t>=j&&j>=i)
		{
			allnum[0]=i;
			allnum[1]=j;
			allnum[2]=t;
			cout<<allnum[0]<<' '<<allnum[1]<<' '<<allnum[2]<<endl;
			long long temp=judge();
			ans+=judge();
			cnt++;
		}
	}
	cout<<ans<<endl;
	return 0;
}
0 回复 0 转发 0 喜欢 0 阅读
回复 (0)
默认 最新
暂无回复,快来抢沙发!