Advertisement
vitali_minsk

[STEPHENS] RaiseToPower

May 1st, 2017
75
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 1.09 KB | None | 0 0
  1. static void Main(string[] args)
  2.         {
  3.             // raise to power
  4.             List<KeyValuePair<Int32, Int64>> list = new List<KeyValuePair<Int32, Int64>>();
  5.             Int64 number = 7;
  6.             Int32 exp = 22;
  7.             Int32 startExp = 1;
  8.  
  9.             while(true)
  10.             {
  11.                 list.Add(new KeyValuePair<Int32, Int64>(startExp, number));
  12.                 number *= number;
  13.                 startExp *= 2;
  14.                 if(startExp > exp)
  15.                 {
  16.                     Int32 diff = exp - list[list.Count - 1].Key;
  17.                     while(diff != 0)
  18.                     {
  19.                         for(Int32 i = list.Count - 1; i >= 0; --i)
  20.                         {
  21.                             if(list[i].Key <= diff)
  22.                             {
  23.                                 number *= list[i].Value;
  24.                                 diff -= list[i].Key;
  25.                             }
  26.                         }
  27.                     }
  28.                     break;
  29.                 }
  30.             }
  31.             Console.WriteLine(number);
  32.         }
  33.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement