JAVA 블루 브릿지 컵 훈련 알고리즘 외로운 번호

JAVA 블루 브릿지 컵 훈련 알고리즘 외로운 번호

자원 제약 조건
시간 제한 : 메모리 제한을 1.0s : 256.0MB를

문제 설명
  하나 둘, 둘, 셋, 세 가지를 : 말하여 도덕.
  어떤 양의 정수 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)에 의해 생성 될 수있을 수있다. 그러나 더 발전기 등 (42)와 같은 일부 수치는 없다. 우리는 외로운 그림이라는 등의 번호를 호출합니다.

입력 포맷
  라인, 양의 정수 n.

출력 형식
  의 모든 외로운 미만 N, 라인 당 하나의 디지털 출력의 오름차순이다.

입력 샘플
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);
				}
			}
		}
	}
	

发布了17 篇原创文章 · 获赞 0 · 访问量 367

추천

출처blog.csdn.net/qq_36551453/article/details/104488688