나는 당신이 여기 https://www.hackerrank.com/contests/programming-jam-2-0/challenges/math-practice자바 연습 프로그램 PROB
당신은 당신의 아이가 자신의 수학을 연습하는 데 도움이되는 전략을 고안 한 질문을 볼 수 있습니다 HackerRank 에서이 문제를 해결했다. 우선, 양의 정수 N을 선택합니다. 그러면 N, 3 × N, 5 × N, 7 × N 등의 이름을 지정하도록 아이에게 지시합니다.
그는 이름을 지정할 때마다 해당 숫자의 모든 숫자를 생각합니다. 그는 자신이 지명 한 숫자의 일부인 한 번 이상 본 숫자 (0, 1, 2, 3, 4, 5, 6, 7, 8 및 9)를 추적합니다. 그는 한 번에 적어도 열 자리의 각을 본 후에, 그는 또한
내 코드를 연주 이동하도록 허용하지만 제출할 때 그것은 나에게 (표준 출력에 응답)를 제공하지 내가 코드를 수정 많은 시간과 실수 어디 있는지 모르겠어 사람이 로컬 디버그
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