#include
using
namespace std;
intmain()
// 要排除ijk全是0的情況,比如max等於2時, ijk全是0,count顯示有一種情況
// coutreturn0;
}
剛開始真的很蠢的想著,暴力遍歷1-59084709587505,其中滿足是幸運數字的話就++,但是這樣子很慢,效率很低!!
腦子轉一下彎,其實就知道幸運數字滿足:3^a * 5^b * 7^c。代表有a個3,b個5,c個7相乘。那這樣子就可以分別for迴圈a,b,c的值,並且滿足的時候就代表乙個幸運數
if
(pow(3
,i)*
pow(
5,j)
* pow (
7,k)
< max&&
pow(
3,i)
*pow(5
,j)* pow (
7,k)
>1)
//執行結果1905 if(
pow(
3,i)
*pow(5
,j)* pow (
7,k)
<= max&&
pow(
3,i)
*pow(5
,j)* pow (
7,k)
>1)
// 執行結果1905
兩個執行結果都是1905,因為ijk是受前面的三個for迴圈裡限制的,三個for迴圈裡面都沒有<=max,只是網上好多答案都是說是1905.按道理程式跑出的結果是1905,證明前面有1905個幸運數,那59084709587505不應該是第1906個幸運數嗎,那答案不是應該是1906嗎??疑惑。。。一直沒理解。。。 藍橋 第幾個幸運數
到x星球旅行的遊客都被發給乙個整數,作為遊客編號。x星的國王有個怪癖,他只喜歡數字3,5和7。國王規定,遊客的編號如果只含有因子 3,5,7,就可以獲得乙份獎品。我們來看前10個幸運數字是 3 5 7 9 15 21 25 27 35 45 因而第11個幸運數字是 49 小明領到了乙個幸運數字 59...
藍橋杯省賽 第幾個幸運數
到x星球旅行的遊客都被發給乙個整數,作為遊客編號。x星的國王有個怪癖,他只喜歡數字3,5和7。國王規定,遊客的編號如果只含有因子 3,5,7,就可以獲得乙份獎品。我們來看前10個幸運數字是 3 5 7 9 15 21 25 27 35 45 因而第11個幸運數字是 49 小明領到了乙個幸運數字 59...
藍橋杯 演算法提公升 第幾個幸運數
我們來看前10個幸運數字是 3 5 7 9 15 21 25 27 35 45 因而第11個幸運數字是 49 小明領到了乙個幸運數字 59084709587505,他去領獎的時候,人家要求他準確地說出這是第幾個幸運數字,否則領不到獎品。請你幫小明計算一下,59084709587505是第幾個幸運數字...