日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

只包含因子2 3 5的数(51nod 思维 打表)

發(fā)布時(shí)間:2023/12/15 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 只包含因子2 3 5的数(51nod 思维 打表) 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

K的因子中只包含2 3 5。滿足條件的前10個(gè)數(shù)是:2,3,4,5,6,8,9,10,12,15。
所有這樣的K組成了一個(gè)序列S,現(xiàn)在給出一個(gè)數(shù)n,求S中 >= 給定數(shù)的最小的數(shù)。
例如:n = 13,S中 >= 13的最小的數(shù)是15,所以輸出15。
Input
第1行:一個(gè)數(shù)T,表示后面用作輸入測試的數(shù)的數(shù)量。(1 <= T <= 10000)
第2 - T + 1行:每行1個(gè)數(shù)N(1 <= N <= 10^18)
Output
共T行,每行1個(gè)數(shù),輸出>= n的最小的只包含因子2 3 5的數(shù)。
Sample Input
5
1
8
13
35
77
Sample Output
2
8
15
36
80

1e18這么大的數(shù),只能打表來做了。問題是怎么打表。仔細(xì)想想就知道。以2 3 5為因子的數(shù),是幾個(gè)2,幾個(gè)3,幾個(gè)5相乘得到的,但是不一定這三個(gè)數(shù)全湊齊。那么就用三重循環(huán)就好了,注意結(jié)束條件。
代碼如下:

#include<iostream> #include<cstdio> #include<algorithm> #include<cmath> #define ll long long using namespace std;const int maxx=1e6+100; ll a[maxx]; int t; int m;void init()//打表!!! {m=0;for(ll i=1;i<1e18+100;i*=2){for(ll j=1;j*i<1e18+100;j*=3){for(ll k=1;k*i*j<1e18+100;k*=5){ll sum=i*j*k;a[m++]=sum;}}}sort(a,a+m); }int main() {init();cin>>t;ll n;while(t--){cin>>n;for(int i=1;i<m;i++)//遍歷就可以了{(lán)if(a[i]>=n){cout<<a[i]<<endl;break;}}}return 0; }

努力加油a啊,(o)/~

總結(jié)

以上是生活随笔為你收集整理的只包含因子2 3 5的数(51nod 思维 打表)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。