It's difficult and boring(:P) to go through the code... better give ur logic..
-Rohit On Sun, Mar 7, 2010 at 3:04 PM, B |_ /\ C |<--D ! /\ /\/\ O /\| D < [email protected]> wrote: > /**** this is the problem of finding first K and last k of N^N but i am > failling somewhere what's wrong thing am i doing > using System; > namespace MyProgram > { > class PowerUpperDown > { > string zero = "000000000"; > const long Mod = 10000000000; > //calculate the a^x > long pow(long a, long x) > { > if (x == 0) > return 1; > if (a == 0) return 0; > long ans = pow(a, x / 2); > ans = (ans * ans) % Mod; > if (x % 2 == 0) > return ans; > else return (ans * a) % Mod; > } > //print last k digit > public string printL(long X, int k, long Max) > { > string str = X.ToString(); > string output = ""; > int C = (int)Math.Min(k, Max); > if (X == 0) > output = zero.Substring(0, C); > else > { > if (str.Length < C) > output = zero.Substring(0, C - str.Length) + str; > else > { > > output += str.Substring(str.Length - C, C); > } > } > return output; > } > //first k digit > public string printF(long X, int k, long Max) > { > string output = X.ToString(); > int C = (int)Math.Min(k, Max); > return output.Substring(0, C); > } > public static void Main(string[] argv) > { > int T = Int32.Parse(Console.ReadLine()); > PowerUpperDown mypowerobj = new PowerUpperDown(); > for (int cases = 0; cases < T; cases++) > { > string[] input = Console.ReadLine().Split(' '); > long N = Int64.Parse(input[0]); > int K = Int32.Parse(input[1]); > double fract = N * Math.Log10(N); > long M = (long)fract; > fract = fract - M; > M++; > if (N < 10) > { > long val = mypowerobj.pow(N, N); > Console.WriteLine(mypowerobj.printF(val, K, M) + " " + > mypowerobj.printL(val, K, M)); > } > else > { > long val1 = (long)(Math.Pow(10, fract) * Mod); > long val2 = mypowerobj.pow(N, N); > Console.WriteLine(mypowerobj.printF(val1, K, M) + " " + > mypowerobj.printL(val2, K, M)); > } > } > } > } > } > > > -- > You received this message because you are subscribed to the Google Groups > "Algorithm Geeks" group. > To post to this group, send email to [email protected]. > To unsubscribe from this group, send email to > [email protected]<algogeeks%[email protected]> > . > For more options, visit this group at > http://groups.google.com/group/algogeeks?hl=en. > -- You received this message because you are subscribed to the Google Groups "Algorithm Geeks" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/algogeeks?hl=en.
