ブルーブリッジカップ孤独数

問題の説明
  道徳経は言った:1 2、2、3、3つのことを。
  任意の正の整数nに対して、我々は、D(n)がプラス様々な数の組成物のためのnの値を定義し、N。例えば、D(23)= 23 + 2 + 3 = 28、D(1481)= 1481 + 1 + 4 + 8 + 1 = 1495。
  あなたが増加するシーケンスを構築することができるようにこのように、出発点としてどれを所与: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は、発電機51、等であり、発電機39です。いくつかの図面でも、このような101、91及び100のような2つの発生器によって生成されてもよい有していてもよいです。しかし、誰発電機など42のようないくつかの数字は、ありません。私たちは孤独な数字と呼ばれる、このような数字を呼び出します。
入力形式
  ライン、正の整数n。
出力フォーマット
  すべての数値未満の出力を昇順でロンリーnは、1行に1つずつ。
サンプル入力
40
サンプル出力
1
3
5
7
9
20
31
スケールデータと規則
  N <= 10000
私は、参照https://blog.csdn.net/coding__girl/article/details/76302157以来、しないだろう
1つの#include <ビット/ STDC ++ H.>
 2  使用して 名前空間STD;
 3  INTフラグに[ 10010 ]; // 内のフラグ[I] = 0 iは孤独である数を示す
4。 INT メイン(){
 5。     INT N-を、
 6      CIN >> N-;
 7      のためのINT i = 1 ; iは<n-は、I ++ ){
 8。         INT ; SUM = iは// SUMは、Dの値を表す式(I)
9。         int型の mは=私; // で、各ビットのIアウト分割中間変数は、ループのために影響を与える、直接操作Iを避けるために
10          ながら(M){
 。11             %+ M =合計10 ;
 12は、              M / = 10 ;
 13である         }
 14          内のフラグ[和] = 1 ; //は。標識されていない孤独の数の和を表す1 
15      }
 16      のためにINT I = 1 ; I <N-; ++ I ){
 17。         IF(のフラグ[I] == 0 ){
 18は              COUT I << << ENDL;
 19          }
 20      }
 21は、     リターン 0 ;
 22です }

 

おすすめ

転載: www.cnblogs.com/fx1998/p/12656797.html