Uva 324 - Factorial Frequencies
/*
import java.util.*;
import java.math.*;
class Main
{
public static void main (String[] args)
{
Scanner in = new Scanner (System.in);
int n;
//BigInteger f=BigInteger.ONE;
while(in.hasNext())
{
n = in.nextInt();
if (n==0) break;
int len=0,zero=0,one=0,two=0,three=0,four=0,five=0,six=0,seven=0,eight=0,nine=0;
BigInteger a,b,p=BigInteger.valueOf(10),t;
BigInteger fact[]=new BigInteger[850];
//int fact[]=new int [850];
BigInteger f=BigInteger.ONE;
for (int i=1;i<=n;i++)
{
f=f.multiply(BigInteger.valueOf(i));
}
//System.out.print(f);
a=f; b=f;
while(a!=BigInteger.ZERO)
{
a=a.mod(p);
//fact[len++]=a;
if (a.equals(BigInteger.valueOf(0))) zero++;
else if (a.equals(BigInteger.valueOf(1))) one++;
else if (a.equals(BigInteger.valueOf(2))) two++;
else if (a.equals(BigInteger.valueOf(3)))three++;
else if (a.equals(BigInteger.valueOf(4)))four++;
else if (a.equals(BigInteger.valueOf(5)))five++;
else if (a.equals(BigInteger.valueOf(6)))six++;
else if (a.equals(BigInteger.valueOf(7)))seven++;
else if (a.equals(BigInteger.valueOf(8)))eight++;
else if (a.equals(BigInteger.valueOf(9)))nine++;
b=b.divide(p);
a=b;
}
//for (int i=0;i<len;i++) System.out.print(fact[i]+" ");
/*for (int i=0;i<len;i++)
{
if (fact[i]==BigInteger.ZERO)zero++;
else if (fact[i]==BigInteger.ONE)one++;
else if (fact[i]==BigInteger.TWO)two++;
else if (fact[i]==BigInteger.THREE)three++;
else if (fact[i]==BigInteger.vlauOf(4))four++;
}
System.out.println(" (0) ");
System.out.print(zero);*/
System.out.println(n+"!"+" --");
System.out.println(" (0) "+zero+" (1) "+one+" (2) "+two+" (3) "+three+" (4) "+four+"\n"+" (5) "+five+" (6) "+six+" (7) "+seven+" (8) "+eight+" (9) "+nine);
}
}
}
Uva 324 - Factorial Frequencies
Verdict:: Accepted
Time: 0.078
*/import java.util.*;
import java.math.*;
class Main
{
public static void main (String[] args)
{
Scanner in = new Scanner (System.in);
int n;
//BigInteger f=BigInteger.ONE;
while(in.hasNext())
{
n = in.nextInt();
if (n==0) break;
int len=0,zero=0,one=0,two=0,three=0,four=0,five=0,six=0,seven=0,eight=0,nine=0;
BigInteger a,b,p=BigInteger.valueOf(10),t;
BigInteger fact[]=new BigInteger[850];
//int fact[]=new int [850];
BigInteger f=BigInteger.ONE;
for (int i=1;i<=n;i++)
{
f=f.multiply(BigInteger.valueOf(i));
}
//System.out.print(f);
a=f; b=f;
while(a!=BigInteger.ZERO)
{
a=a.mod(p);
//fact[len++]=a;
if (a.equals(BigInteger.valueOf(0))) zero++;
else if (a.equals(BigInteger.valueOf(1))) one++;
else if (a.equals(BigInteger.valueOf(2))) two++;
else if (a.equals(BigInteger.valueOf(3)))three++;
else if (a.equals(BigInteger.valueOf(4)))four++;
else if (a.equals(BigInteger.valueOf(5)))five++;
else if (a.equals(BigInteger.valueOf(6)))six++;
else if (a.equals(BigInteger.valueOf(7)))seven++;
else if (a.equals(BigInteger.valueOf(8)))eight++;
else if (a.equals(BigInteger.valueOf(9)))nine++;
b=b.divide(p);
a=b;
}
//for (int i=0;i<len;i++) System.out.print(fact[i]+" ");
/*for (int i=0;i<len;i++)
{
if (fact[i]==BigInteger.ZERO)zero++;
else if (fact[i]==BigInteger.ONE)one++;
else if (fact[i]==BigInteger.TWO)two++;
else if (fact[i]==BigInteger.THREE)three++;
else if (fact[i]==BigInteger.vlauOf(4))four++;
}
System.out.println(" (0) ");
System.out.print(zero);*/
System.out.println(n+"!"+" --");
System.out.println(" (0) "+zero+" (1) "+one+" (2) "+two+" (3) "+three+" (4) "+four+"\n"+" (5) "+five+" (6) "+six+" (7) "+seven+" (8) "+eight+" (9) "+nine);
}
}
}
Comments
Post a Comment