[英]C: How to find that a certain number of characters are present in a string in any sequence?
[英]Find number in Ulam Sequence C
我希望能夠創建 Ulam 編號序列並能夠找到第 n 個 Ulam 編號。 例如,如果您的輸入為“8”,則輸出應為 13。如果輸入為 700,則輸出應為第 700 個烏拉姆數(不知道具體是什么)。 前兩個數字是 1 和 2。
我想我需要一個初始化為 1 和 2 的數組,並使用雙循環通過檢查下一個數字是否是具有唯一表示的最小可能值來獲取下一個數字。
我只是不確定如何在 C 中編碼。但是,即使是偽代碼也能幫助我解決這個問題。 任何幫助表示贊賞。
Ulam 序列中的Ulam 數必須只能以一種方式表示為它的兩個前輩之和。
注意兩個前輩並不是“獨立”的——如果你選擇一個,那么你可以計算第二個。
示例:序列以數字 1、2、3、4、6、8、11、13、16、18 開始。
例如 21 是下一個數字嗎? 開始檢查所有以前的數字,如下所示:
1
。 然后1 + x = 21
。 對於這里, x = 21 - 1 = 20
。 20
是序列的一個元素嗎? 不。2
。 然后2 + x = 21
。 對於這里, x = 21 - 2 = 19
。 19
是序列的一個元素嗎? 不。3
。 然后3 + x = 21
。 對於這里, x = 21 - 3 = 18
。 18
是序列的一個元素嗎? 是的 => 我們找到了一種表示: 21 = 3 + 18
。4
。 然后4 + x = 21
。 對於這里, x = 21 - 4 = 17
。 17
是序列的一個元素嗎? 不。6
。 然后6 + x = 21
。 對於這里, x = 21 - 6 = 15
。 15
是序列的一個元素嗎? 不。8
。 然后8 + x = 21
。 對於這里, x = 21 - 8 = 13
。 13
是序列的一個元素嗎? 是 => 我們找到了另一種表示: 21 = 8 + 13
,所以21
不是序列的成員。因此,要檢查一個數字是否是序列的成員,您需要檢查它的所有前輩。
如果您按照描述的方式檢查所有數字,您將一一發現序列中的所有成員。 到達所需索引時停止。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.