藍橋杯練習題 幸運數改

2021-10-21 06:12:08 字數 1034 閱讀 2031

題目描述

有一隊數列有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個幸運數,然...