□Problem
自然数nに対し,d(n)をn+(各桁の総和)と定義する.例えば,d(75)=75+7+5=87.n=d(m)となるmが存在しないnをself-numberと呼ぶ.10000以下のself-numberを全て表示せよ.
□Solution
やるだけ.
□Code
package p1316;
import java.util.*;
import java.lang.*;
import java.math.*;
import java.io.*;
import static java.lang.Math.*;
import static java.util.Arrays.*;
public class Main{
Scanner sc=new Scanner(System.in);
final int INF=Integer.MAX_VALUE;
final double EPS=1e-9;
void run(){
int n=10000;
int[] a=new int[n];
for(int i=1; i<n; i++){
int m=i;
int s=i;
while(m!=0){
s+=m%10;
m/=10;
}
if(s<n)
a[s]=1;
}
for(int i=1; i<n; i++)
if(a[i]==0)
println(i+"");
}
void print(String s){
System.out.print(s);
}
void println(String s){
System.out.println(s);
}
public static void main(String[] args){
// System.setOut(new PrintStream(new BufferedOutputStream(System.out)));
new Main().run();
}
}
0 件のコメント:
コメントを投稿