問題描述
道德經曰:一生二,二生三,三生萬物。
對於任意正整數n,我們定義d(n)的值為為n加上組成n的各個數字的和。例如,d(23)=23+2+3=28, d(1481)=1481+1+4+8+1=1495。
因此,給定了任意乙個n作為起點,你可以構造如下乙個遞增序列:n,d(n),d(d(n)),d(d(d(n)))….例如,從33開始的遞增序列為:
33, 39, 51, 57, 69, 84, 96, 111, 114, 120, 123, 129, 141, …
我們把n叫做d(n)的生成元,在上面的數列中,33是39的生成元,39是51的生成元,等等。有一些數字甚至可以有兩個生成元,比如101,可以由91和100生成。但也有一些數字沒有任何生成元,如42。我們把這樣的數字稱為寂寞的數字。
輸入格式
一行,乙個正整數n。
輸出格式
按照公升序輸出小於n的所有寂寞的數字,每行乙個。
樣例輸入
40 樣例輸出
1 3
5 7
9 20
31 資料規模和約定
n<=10000
#include
using
namespace
std;
int main()
if(sum==i)
break;
}if(k==i)
cout
0;}
以上**執行時,最後乙個測試用例會超時,因此考慮用陣列儲存
改進**:
#include
#include
using
namespace
std;
int main()
flag[sum]=1;//表示sum不為寂寞的數,標記為1
}for(i=1;iif(flag[i]==0)
cout
0;}
演算法訓練 寂寞的數
演算法訓練 寂寞的數 時間限制 1.0s 記憶體限制 256.0mb 問題描述 道德經曰 一生二,二生三,三生萬物。對於任意正整數n,我們定義d n 的值為為n加上組成n的各個數字的和。例如,d 23 23 2 3 28,d 1481 1481 1 4 8 1 1495。因此,給定了任意乙個n作為起...
演算法訓練 寂寞的數
題目鏈結 問題描述 道德經曰 一生二,二生三,三生萬物。對於任意正整數n,我們定義d n 的值為為n加上組成n的各個數字的和。例如,d 23 23 2 3 28,d 1481 1481 1 4 8 1 1495。因此,給定了任意乙個n作為起點,你可以構造如下乙個遞增序列 n,d n d d n d ...
藍橋杯 ALGO 119 演算法訓練 寂寞的數
問題描述 道德經曰 一生二,二生三,三生萬物。對於任意正整數n,我們定義d n 的值為為n加上組成n的各個數字的和。例如,d 23 23 2 3 28,d 1481 1481 1 4 8 1 1495。因此,給定了任意乙個n作為起點,你可以構造如下乙個遞增序列 n,d n d d n d d d n...