我解決上HackerRank 這個問題,你可以看到這裏的問題 https://www.hackerrank.com/contests/programming-jam-2-0/challenges/math-practice的Java編程實踐概率
你已經制定了一個策略,幫助你的孩子練習他的數學。首先,你選擇一個正整數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