BOJ 231分解(Java)
質問する
BOJ 231分解
に答える
Brootforsで解いた
1からN(入力された数)の間の文のi+iの各ビット数の和がNである場合、iが出力される.
iの各ビット数を増やす2つの方法を考えた.
Brootforsで解いた
1からN(入力された数)の間の文のi+iの各ビット数の和がNである場合、iが出力される.
iの各ビット数を増やす2つの方法を考えた.
iが0になるまでiを10で割った残数を求め、10で割った.
次のコードで作成されました.
iを文字列に変換し、各位置の文字を加算した値を求めます.
for (int j = 0; j < String.valueof(i).length(); j++) {
sum += Integer.parseInt(String.valueof(i).charAt(j));
}
int->String->int変換は複雑で性能が悪いため,方法1を用いて解く.△Nが非常に大きい場合、この方法は適用を考慮する.
コード#コード# import java.io.*;
import java.util.*;
public class Q2231 {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
final int N = Integer.parseInt(br.readLine());
final int answer = getDecompositionNumber(N);
bw.write(answer + "\n");
bw.close();
br.close();
}
static int getDecompositionNumber(int N) {
for (int i = 1; i < N; i++) {
int number = i;
int sum = 0;
while (number != 0) {
sum += number % 10;
number /= 10;
}
if (sum + i == N) {
return i;
}
}
return 0;
}
}
結果
メソッド1とメソッド2の結果は次のとおりです.
Reference
この問題について(BOJ 231分解(Java)), 我々は、より多くの情報をここで見つけました
https://velog.io/@hansoleee/BOJ-2231-분해합-Java
テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol
import java.io.*;
import java.util.*;
public class Q2231 {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
final int N = Integer.parseInt(br.readLine());
final int answer = getDecompositionNumber(N);
bw.write(answer + "\n");
bw.close();
br.close();
}
static int getDecompositionNumber(int N) {
for (int i = 1; i < N; i++) {
int number = i;
int sum = 0;
while (number != 0) {
sum += number % 10;
number /= 10;
}
if (sum + i == N) {
return i;
}
}
return 0;
}
}
メソッド1とメソッド2の結果は次のとおりです.
Reference
この問題について(BOJ 231分解(Java)), 我々は、より多くの情報をここで見つけました https://velog.io/@hansoleee/BOJ-2231-분해합-Javaテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol