コーディングテスト練習記録
7880 ワード
2021.12.23 3 3日目
白駿4673号(セルフサービス番号)
質問する
セルフサービス番号は1949年にインドの数学者D.R.Kaprekarによって命名された.正の整数nについて、d(n)がnおよびnの各ビット数の関数を定義する.例えば、d(75)=75+7+5=87である.
正の整数nが与えられると、その数からn、d(n)、d(d(n)、d(d(d(n))、...無限数列を生成できます.
たとえば、33で始まると、次の数字は33+3+3=39、次の数字は39+3+9=51、次の数字は51+5+1=57となります.このようにして、次の数の列を生成できます.
33, 39, 51, 57, 69, 84, 96, 111, 114, 120, 123, 129, 141, ...
nをd(n)の生成者と呼ぶ.上の数列において、33は39の生成者、39は51の生成者、51は57の生成者である.生成者が1つより多い場合もあります.例えば、101には2つの構造関数(91および100)がある.
生成されていない数字を自動番号と呼びます.100未満のセルフサービス番号は全部で13個です.1, 3, 5, 7, 9, 20, 31, 42, 53, 64, 75, 86, 97
10000以下のセルフ・サービス番号を出力するプログラムを作成します.
私の答え1から10000までのアレイ を生成する. ArrayList検証(追加、含む、削除) を使用する.
数字を文字列に変換して、数字の桁数を決定します(長さ ).
int to String
1.Integer.toString()
2.String.valueOf()
3.int + "" ArrayList
1.追加-追加(オブジェクトo)
2.削除-削除(int index)、削除(Object o)
3.サイズ-size()
4.フィーチャー-保存順序を保持し、 を繰り返すことができる. Math.pow(double a, double b)
白駿4673号(セルフサービス番号)
質問する
セルフサービス番号は1949年にインドの数学者D.R.Kaprekarによって命名された.正の整数nについて、d(n)がnおよびnの各ビット数の関数を定義する.例えば、d(75)=75+7+5=87である.
正の整数nが与えられると、その数からn、d(n)、d(d(n)、d(d(d(n))、...無限数列を生成できます.
たとえば、33で始まると、次の数字は33+3+3=39、次の数字は39+3+9=51、次の数字は51+5+1=57となります.このようにして、次の数の列を生成できます.
33, 39, 51, 57, 69, 84, 96, 111, 114, 120, 123, 129, 141, ...
nをd(n)の生成者と呼ぶ.上の数列において、33は39の生成者、39は51の生成者、51は57の生成者である.生成者が1つより多い場合もあります.例えば、101には2つの構造関数(91および100)がある.
生成されていない数字を自動番号と呼びます.100未満のセルフサービス番号は全部で13個です.1, 3, 5, 7, 9, 20, 31, 42, 53, 64, 75, 86, 97
10000以下のセルフ・サービス番号を出力するプログラムを作成します.
私の答え
数字
import java.util.ArrayList;
public class Main {
public static void main(String[] args) {
Test test = new Test();
test.number(10000);
}
}
class Test {
void number(int a) {
ArrayList<Integer> al = new ArrayList<Integer>();
for (int i = 1; i < a; i++) {
al.add(i);
}
for (int x = 1; x < a;x++) {
int selfNumber = 0;
selfNumber += x;
String strNum = "" + x;
for (int z = strNum.length(); z > 0; z--) {
selfNumber += strNum.charAt(z - 1) - '0';
}
if (al.contains(selfNumber)) {
al.remove(Integer.valueOf(selfNumber));
}
}
for (int q:al) {
System.out.println(q);
}
}
}
考える1.Integer.toString()
2.String.valueOf()
3.int + ""
1.追加-追加(オブジェクトo)
2.削除-削除(int index)、削除(Object o)
3.サイズ-size()
4.フィーチャー-保存順序を保持し、
Reference
この問題について(コーディングテスト練習記録), 我々は、より多くの情報をここで見つけました https://velog.io/@jgjgill/코딩테스트-연습-기록-1i549p7zテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol