私はあなたがあなたの子供が彼の数学を練習することができます戦略を考案した、ここで質問 https://www.hackerrank.com/contests/programming-jam-2-0/challenges/math-practiceのJava実践プログラミングPROB
を見ることができますHackerRank にこの問題を解決されました。まず、正の整数Nを選択します。次に、N、3×N、5×N、7×Nというように名前を付けるように子供に指示します。
名前を付けたときはいつでも、その番号の数字のすべてについて考えます。彼は、自分が命名した番号の一部として少なくとも1回は見た数字(0,1,2,3,4,5,6,7,8、および9)を追跡します。彼は少なくとも一度10桁のそれぞれを見ていたら、彼は
とも私のコードを弾くが、私はそれは私に(標準出力に何の応答)を与えない提出時に行くことを許され 私はコードを何度も改訂し、間違いです私は知らない 誰がローカルデバッグ
package contest;
import java.util.ArrayList;
import java.util.Scanner;
/**
*
* @author Mohamed
*/
public class Solution
{
public static void main(String [] s){
Scanner In = new Scanner(System.in);
int number = In.nextInt();
int counter = 1;
int length;
int oneDigit;
int newNumber;
int index;
boolean condition = true;
int [] arr = new int[10];
ArrayList<String> theList = new ArrayList<>();
while(condition = true){
length = (int)(Math.log10(number) + 1);
newNumber = number;
while(length > 0)
{
oneDigit = newNumber % 10;
newNumber = newNumber/10;
if(arr[0] != oneDigit && arr[1] != oneDigit && arr[2] != oneDigit &&
arr[3] != oneDigit && arr[4] != oneDigit && arr[5] != oneDigit &&
arr[6] != oneDigit && arr[7] != oneDigit && arr[8] != oneDigit &&
arr[9] != oneDigit)
{
String num = String.valueOf(oneDigit);
theList.add(num);
index = theList.lastIndexOf(num);
arr[index] = oneDigit;
}
if(newNumber == 0){
length = 0;
}
else{
length = (int)(Math.log10(newNumber) + 1);
}
}
counter = counter + 2;
if(arr[9] != 0)
{
System.out.println(number);
condition = false;
}
number = number * counter;
}
}
}
'しばらく(条件=真)、それは次のとおりです。セットは次のようになります。で、重複
あなたのコードを許可していません。表現の結果でもあります。あなたは 'while(condition == true)'を意味しているかもしれませんが、どちらか一方を書いてはいけませんが、代わりに 'while(condition)'と書いてください。 – Andreas
IMO、HackerRankに答える最善の方法は、HackerRankで完全にコードを書かないことです。 –
@ cricket_007合意。 IDEを使用して、コードを常にローカルで記述し、テストしてください。この場合、IDEはあなたに 'while(condition = true) '問題について話していたでしょう。 – Andreas