<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://mediawiki.zeropage.org/index.php?action=history&amp;feed=atom&amp;title=HowManyZerosAndDigits%2F%EC%9E%84%EC%9D%B8%ED%83%9D</id>
	<title>HowManyZerosAndDigits/임인택 - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://mediawiki.zeropage.org/index.php?action=history&amp;feed=atom&amp;title=HowManyZerosAndDigits%2F%EC%9E%84%EC%9D%B8%ED%83%9D"/>
	<link rel="alternate" type="text/html" href="https://mediawiki.zeropage.org/index.php?title=HowManyZerosAndDigits/%EC%9E%84%EC%9D%B8%ED%83%9D&amp;action=history"/>
	<updated>2026-05-15T04:11:53Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.39.8</generator>
	<entry>
		<id>https://mediawiki.zeropage.org/index.php?title=HowManyZerosAndDigits/%EC%9E%84%EC%9D%B8%ED%83%9D&amp;diff=32400&amp;oldid=prev</id>
		<title>imported&gt;Unknown at 05:23, 7 February 2021</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.zeropage.org/index.php?title=HowManyZerosAndDigits/%EC%9E%84%EC%9D%B8%ED%83%9D&amp;diff=32400&amp;oldid=prev"/>
		<updated>2021-02-07T05:23:25Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== &lt;br /&gt;
 ~cpp MyTest.java&lt;br /&gt;
==&lt;br /&gt;
 import junit.framework.TestCase;&lt;br /&gt;
 &lt;br /&gt;
 public class MyTest extends TestCase {&lt;br /&gt;
     private HowManyZerosAndDigits object;&lt;br /&gt;
     &lt;br /&gt;
     public void testFactorial() {&lt;br /&gt;
         object = new HowManyZerosAndDigits(0, 0);&lt;br /&gt;
         assertEquals(1, object.factorial(1));&lt;br /&gt;
         assertEquals(2, object.factorial(2));&lt;br /&gt;
         assertEquals(6, object.factorial(3));&lt;br /&gt;
         assertEquals(24, object.factorial(4));&lt;br /&gt;
     }&lt;br /&gt;
     &lt;br /&gt;
     public void testHowManyZeros() {&lt;br /&gt;
         object = new HowManyZerosAndDigits(0, 0);&lt;br /&gt;
         assertEquals(0, object.howManyZeros(1));&lt;br /&gt;
         assertEquals(1, object.howManyZeros(10));&lt;br /&gt;
         assertEquals(2, object.howManyZeros(100));&lt;br /&gt;
         assertEquals(2, object.howManyZeros(1010));&lt;br /&gt;
     }&lt;br /&gt;
     &lt;br /&gt;
     public void testNumberSystemConversion() {&lt;br /&gt;
 //        object = new HowManyZerosAndDigits(120, 16);&lt;br /&gt;
 //        assertEquals(2, object.convertNumber());&lt;br /&gt;
 //        &lt;br /&gt;
 //        object = new HowManyZerosAndDigits(120, 10);&lt;br /&gt;
 //        assertEquals(3, object.convertNumber());&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
  &lt;br /&gt;
== &lt;br /&gt;
 ~cpp  HowManyZerosAndDigits.java&lt;br /&gt;
==&lt;br /&gt;
 import java.io.BufferedReader;&lt;br /&gt;
 import java.io.InputStreamReader;&lt;br /&gt;
 import java.util.LinkedList;&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 public class HowManyZerosAndDigits {&lt;br /&gt;
     private int _n;&lt;br /&gt;
     private int _b;&lt;br /&gt;
     private int _fact;&lt;br /&gt;
     private LinkedList numbers;&lt;br /&gt;
 &lt;br /&gt;
     public HowManyZerosAndDigits(int n, int b) {&lt;br /&gt;
         _n = n;&lt;br /&gt;
         _b = b;&lt;br /&gt;
         numbers = new LinkedList();&lt;br /&gt;
     }&lt;br /&gt;
     &lt;br /&gt;
     public void solve() {&lt;br /&gt;
         _fact = factorial(_n);&lt;br /&gt;
         convertNumber();&lt;br /&gt;
         System.out.println(howManyZeros() + &amp;quot; &amp;quot; + numDigit());&lt;br /&gt;
     }&lt;br /&gt;
     &lt;br /&gt;
     public int factorial(int n) {&lt;br /&gt;
         int result = 1;&lt;br /&gt;
         for(int i=1; i&amp;amp;lt;n+1; ++i) {&lt;br /&gt;
             result = result*i;&lt;br /&gt;
         }&lt;br /&gt;
         return result;&lt;br /&gt;
     }&lt;br /&gt;
     &lt;br /&gt;
     public void convertNumber() {&lt;br /&gt;
         if( _b == 10 )&lt;br /&gt;
             return;&lt;br /&gt;
 &lt;br /&gt;
         int quotient = _fact / _b;&lt;br /&gt;
         int remainder = _fact % _b;&lt;br /&gt;
         &lt;br /&gt;
         if( remainder != 0 )&lt;br /&gt;
             numbers.add(new Long(remainder));&lt;br /&gt;
         &lt;br /&gt;
         while( quotient != 0 ) {&lt;br /&gt;
             remainder = quotient % _b;&lt;br /&gt;
             quotient = quotient / _b;&lt;br /&gt;
             if( !(quotient==0 &amp;amp;amp;&amp;amp;amp; remainder==0)) // 제일 상위자리가 0인 경우는 넣지 않는다.  &lt;br /&gt;
                 numbers.add(new Long(remainder));&lt;br /&gt;
         }&lt;br /&gt;
     }&lt;br /&gt;
     &lt;br /&gt;
     public int howManyZeros(long num) {&lt;br /&gt;
         int count = 0;&lt;br /&gt;
         String number = Long.toString(num);&lt;br /&gt;
         &lt;br /&gt;
         for(int i=0; i&amp;amp;lt;number.length(); ++i) {&lt;br /&gt;
             if( number.charAt(i)== &amp;#039;0&amp;#039; )&lt;br /&gt;
                 ++count;&lt;br /&gt;
         }&lt;br /&gt;
         return count;&lt;br /&gt;
     }&lt;br /&gt;
     &lt;br /&gt;
     public int howManyZeros() {&lt;br /&gt;
         if( _b == 10 ) {&lt;br /&gt;
             return howManyZeros((long)_fact);&lt;br /&gt;
         }&lt;br /&gt;
         else {&lt;br /&gt;
             int count = 0;&lt;br /&gt;
 	        Object arr[] = numbers.toArray();&lt;br /&gt;
 	        for(int i=0; i&amp;amp;lt;arr.length; ++i) {&lt;br /&gt;
 	            Long l = (Long)arr[i];&lt;br /&gt;
 	            count += howManyZeros(l.longValue());&lt;br /&gt;
 	        }&lt;br /&gt;
 	        return count;&lt;br /&gt;
         }&lt;br /&gt;
     }&lt;br /&gt;
     &lt;br /&gt;
     public int numDigit() {&lt;br /&gt;
         if( _b == 10 ) {&lt;br /&gt;
             int count = 1, value = _fact;&lt;br /&gt;
             value = value/_b;&lt;br /&gt;
             &lt;br /&gt;
             while( value != 0 ) {&lt;br /&gt;
                 value = value/_b;&lt;br /&gt;
                 ++count;&lt;br /&gt;
             }&lt;br /&gt;
             return count;&lt;br /&gt;
         } else {&lt;br /&gt;
             return numbers.size();&lt;br /&gt;
         }&lt;br /&gt;
     }&lt;br /&gt;
     &lt;br /&gt;
     public static void main(String args[]) {&lt;br /&gt;
         try {&lt;br /&gt;
             int n = readInt();&lt;br /&gt;
             int b = readInt();&lt;br /&gt;
             HowManyZerosAndDigits h = new HowManyZerosAndDigits(n, b);&lt;br /&gt;
             h.solve();&lt;br /&gt;
             &lt;br /&gt;
         } catch(Exception ex) {&lt;br /&gt;
             ex.printStackTrace();&lt;br /&gt;
         }&lt;br /&gt;
     }&lt;br /&gt;
     public static int readInt() throws Exception {&lt;br /&gt;
         BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));&lt;br /&gt;
         String intVal = reader.readLine();&lt;br /&gt;
         return Integer.parseInt(intVal);&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
  &lt;br /&gt;
----&lt;br /&gt;
[[HowManyZerosAndDigits]]&lt;br /&gt;
&lt;/div&gt;</summary>
		<author><name>imported&gt;Unknown</name></author>
	</entry>
</feed>