題目描述
有一隊數列有2000個數字,其中的數字只含有因子:3,5,7。
第1個數字是:3
第2個數字是:5
第3個數字是:7
第4個數字是:9
第5個數字是:15
第10個數字是:45
請你設計程式查詢這個數列中的第幾個數字是多少。
思路解析
本體用列舉法資料規模比較大,所以換一種思路
第乙個數字是3
第二個數字是5
第三個數字是7
3x3=9
3x53x7
5x55x7
7x79x3
9x5…
可以看出用佇列的每個元素乘3,5,7獲得佇列的下乙個值
將這個佇列加入陣列,需要兩個操作,去重和排序
這時我們用treeset存放元素即可完成去重和排序
上**
public
class
test16
;long first=1;
treeset
tree=
newtreeset
();while
(tree.
size()
1000
)
first=tree.
higher
(first)
;//highter方法取得集合中略大於first的元素
}for
(int i =
0; i < n-
1; i++
) system.out.
println
(tree.
first()
);}}
但本程式任然存在一些問題:在存放完第n個元素之後我們並不能確定這是第n個元素
例如:存放完7x7之後,存放3x9,而3x9是需要存放在7x7之前的,也就是說,後存放的元素可能是排在較前的元素
藍橋杯 幸運數
先說題意。題意有點長,我還是複製貼上吧。問題描述 幸運數是波蘭數學家烏拉姆命名的。它採用與生成素數類似的 篩法 生成 首先從1開始寫出自然數1,2,3,4,5,6,1 就是第乙個幸運數。我們從2這個數開始。把所有序號能被2整除的項刪除,變為 1 3 5 7 9 把它們縮緊,重新記序,為 1 3 5 ...
藍橋杯 幸運數
歷屆試題 幸運數 時間限制 1.0s 記憶體限制 256.0mb 問題描述 幸運數是波蘭數學家烏拉姆命名的。它採用與生成素數類似的 篩法 生成 首先從1開始寫出自然數1,2,3,4,5,6,1 就是第乙個幸運數。我們從2這個數開始。把所有序號能被2整除的項刪除,變為 1 3 5 7 9 把它們縮緊,...
藍橋杯 幸運數
藍橋杯 幸運數 幸運數是波蘭數學家烏拉姆命名的。它採用與生成素數類似的 篩法 生成。首先從1開始寫出自然數1,2,3,4,5,6,1 就是第乙個幸運數。我們從2這個數開始。把所有序號能被2整除的項刪除,變為 1 3 5 7 9 把它們縮緊,重新記序,為 1 3 5 7 9 這時,3為第2個幸運數,然...