hdu 5878 I Count Two Three (2016 ACM/ICPC Asia Regional Qingdao Online 1001)

时间:2021-02-19 01:01:51

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5878

题目大意:

  给出一个数n ,求一个数X, X>=n. X 满足一个条件 X= 2^a*3^b*5^c*7^d 求靠近n的X值。

解题思路:

  打表+二分查找

【切记用 cin cout,都是泪。。。】

AC Code:

 #include<bits/stdc++.h>
using namespace std;
long long na[]; int main()
{
int s=;
long long ans,n,x;
for(int i=; i<=; i++)
for(int j=; j<=; j++)
for(int k=; k<=; k++)
for(int z=; z<=; z++)
if( (ans=pow(,i)*pow(,j)*pow(,k)*pow(,z))>=1e9+ )break;
else na[s++]=ans;
sort(na,na+s);
while(~scanf("%lld",&n))
{
while(n--)
{
scanf("%lld",&x);
printf("%lld\n",*lower_bound(na,na+s,x));
}
}
return ;
}