TopcoderArchiveVisit Topcoder
SRM10 Mar 2007
SRM 341

KLastNonZeroDigits

Problem statement, definition, constraints, and public examples.

Problem Statement

You are given an int N. The factorial of N is defined as N*(N-1)*(N-2)*...*1. Compute the factorial of N and remove all of its rightmost zero digits. If the result is more than K digits long, return the last K digits as a string. Otherwise, return the entire result as a string.

Definition

Class:
KLastNonZeroDigits
Method:
getKDigits
Parameters:
int, int
Returns:
String
Method signature:
String getKDigits(int N, int K)
(be sure your method is public)

Constraints

  • N will be between 1 and 20, inclusive.
  • K will be between 1 and 9, inclusive.

Examples

  1. 10
    3
    Returns: "288"
    You would first compute the factorial of 10, which is 10*9*8*7*6*5*4*3*2*1=3628800. You would then remove all rightmost zeros to get 36288. Finally, you would return the last 3 digits as a string: "288".
  2. 6
    1
    Returns: "2"
    The factorial of 6 is 720.
  3. 6
    3
    Returns: "72"
  4. 7
    2
    Returns: "04"
    The factorial of 7 is 5040. We remove the last zero to get "504". The last 2 digits of "504" are "04".
  5. 20
    9
    Returns: "200817664"
  6. 1
    1
    Returns: "1"
Back to all problems