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

题目链接: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:

 1 #include<bits/stdc++.h>
 2 using namespace std;
 3 long long na[100002];
 4 
 5 int main()
 6 {
 7     int s=0;
 8     long long ans,n,x;
 9     for(int i=0; i<=31; i++)
10         for(int j=0; j<=19; j++)
11             for(int k=0; k<=12; k++)
12                 for(int z=0; z<=11; z++)
13                     if( (ans=pow(2,i)*pow(3,j)*pow(5,k)*pow(7,z))>=1e9+1 )break;
14                     else na[s++]=ans;
15     sort(na,na+s);
16     while(~scanf("%lld",&n))
17     {
18         while(n--)
19         {
20             scanf("%lld",&x);
21             printf("%lld\n",*lower_bound(na,na+s,x));
22         }
23     }
24     return 0;
25 }

 

转载于:https://www.cnblogs.com/A--Q/p/5879957.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值