Home > Net >  Finding largest number in Java
Finding largest number in Java

Time:10-27

I am trying to find the large number in java by using the integer parameter. I converted the integer value to string but the problem is, it failed on the run and did not show the expected result.

Here is the case:

Given an integer n, it returns the largest number that contains exactly n digits only when n is non-zero.

  • For n = 1, the output should be largestNumber(n) = "9".
  • For n = 2, the output should be largestNumber(n) = "99".
  • For n = 3, the output should be largestNumber(n) = "999".
  • For n =0, the output should be largestNumber(n) = "-1".

Constraints 0 ≤ |n| ≤ 10

Here is the java code :

class Result {
  /*
   * Complete the 'largestNumber' function below.
   *
   * The function is expected to return a STRING.
   * The function accepts INTEGER n as parameter.
   */
public static String largestNumber(int n) { // Write your code here
String res = Integer.toString(n);
return res;
}
                   
}public static void main(String[] args) throws IOException {
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(System.in)); BufferedWriter bufferedWriter = new BufferedWriter(new FileWriter(System.getenv("OUTPUT_PATH")));
int n = Integer.parseInt(bufferedReader.readLine().trim()); String result = Result.largestNumber(n);
        bufferedWriter.write(result);
        bufferedWriter.newLine();
        bufferedReader.close();
        bufferedWriter.close();
    }
}

Here is the result of the screenshot.

Result

CodePudding user response:

All you have to do is repeat the digit "9" n times, with the exception of returning -1 for 0.

public static String largestNumber(int n) {
     if(n == 0) return "-1";
     // for Java 11 : return "9".repeat(n);
     StringBuilder sb = new StringBuilder(n);
     for(int i = 0; i < n; i  ) sb.append('9');
     return sb.toString();
}

CodePudding user response:

public static String largestNumber(int n) {
    if (n == 0)
        return "-1";
    return BigInteger.TEN.pow(n).subtract(BigInteger.ONE).toString();
}
  • Related