私はプログラミングに非常に慣れていませんが、プログラマーとしてのスキルの向上に取り組んでいます。最近、私は、与えられた数の何倍が異なる数字で構成されているかを判断することに挑戦しました。ほとんどが機能するようになりましたが、入力の倍数であるすべての数値にコードを適用する必要があります。私がこれまでに取り組んできたコードは次のとおりです。
Integer numberA = 432143;
Integer numberB = numberA;
Integer[] digitArray = new Integer[numberA.toString().length()];
int index;
for (index = 0; index < digitArray.length; index++) {
digitArray[index] = (numberA % 10);
numberA /= 10;
}
int repeats = 0;
for (int i = 0; i < digitArray.length; i++) {
for (int j = 0; j < digitArray.length; j++) {
if ((i != j) && (digitArray[i]==digitArray[j])) repeats = repeats + 1;
}
}
if (repeats == 0) {
System.out.println(numberB);
}
これにより、番号が個別の数字で構成されているかどうかが判別され、構成されている場合は印刷されます。私は残りのコードを機能させるためにかなりの時間を費やしました、そしてこれは私が思いついたものです:
Integer number = 1953824;
Integer numberA = number;
Integer numberB = numberA;
for (Integer numberC = number; numberC.toString().length() < 11;
numberC = numberC + number) {
Integer[] digitArray = new Integer[numberA.toString().length()];
int index;
for (index = 0; index < digitArray.length; index++) {
digitArray[index] = (numberA % 10);
numberA /= 10;
}
int repeats = 0;
for (int i = 0; i < digitArray.length; i++) {
for (int j = 0; j < digitArray.length; j++) {
if ((i != j) && (digitArray[i]==digitArray[j])) repeats = repeats + 1;
}
}
if (repeats == 0) {
System.out.println(numberB);
}
}
理由はわかりませんが、数字が異なる場合は何回も印刷し、そうでない場合は空白のままにします。なぜこれが起こっているのか、あるいはそれを修正するために私が何をする必要があるのかを誰かに教えてもらえれば、それは素晴らしいことです。覚えておいてください、私はプログラミングに非常に慣れていないので、あなたが使用する用語について、まったく普通ではないことについて簡単に説明してください。私は学びたいと思っていますが、現在はほとんど知りません。お時間をいただき、ありがとうございました。皆様のご協力に心より感謝申し上げます。