ブルーブリッジJAVAの数を訓練する孤独なアルゴリズム

問題の説明
  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である
結果を必要とし、デジタル処理、以外ジンXiaxinをよくお読みのタイトル個別要求事項、質問を理解するために読んで孤独な数字ではなく、単項番号、コードを見ている:アイデア。

	public static void main(String[] args) {
		Scanner scanner = new Scanner(System.in);
		int n = scanner.nextInt();
		scanner.close();               // 输入数据 关闭
		int[] arr = new int[n+1];     
		for (int i = 1; i <= n; i++) {
			int ans = i;                
			int num = i;               
			while (ans != 0) {
				num += ans % 10;       // 每个各位加起来
				ans /= 10;             // 取倒数第二位
			}
			if (num <= n) {            
				arr[num] = 1;
			}
		}
		for (int i = 1; i <= n; i++) {
			if (arr[i] == 0) {         
				System.out.println(i);
			}
		}
	}

小劇場:信仰の報酬は、物事を見るためにあなたの目を信じることです。

发布了116 篇原创文章 · 获赞 113 · 访问量 1万+

おすすめ

転載: blog.csdn.net/weixin_43771695/article/details/104714376