JAVAブルーブリッジカップ学習アルゴリズム孤独番号
資源制約の
制限時間:256.0メガバイト:メモリ制限を1.0秒
問題の説明
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
(その暴力を尋ね、聞かないでください)
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sca=new Scanner(System.in);
int[] a=new int[10001];
for(int i=1;i<10001;i++) {
int sum=i;
String s=String.valueOf(i);
while(sum<=10000) {
for(int j=0;j<s.length();j++) {
int temp=s.charAt(j)-'0';
sum+=temp;
}
if(sum>10000) {
break;
}
a[sum]=1;
s=String.valueOf(sum);
}
}
int n=sca.nextInt();
for(int i=1;i<=n;i++) {
if(a[i]==0) {
System.out.println(i);
}
}
}
}