Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- namespace Euler118
- {
- class Program
- {
- //there are zero bouncy upto 100
- static long seed = 100;
- static long digits = 1000;
- static int i = 1;
- static long ?auxNumber = null;
- static bool decreasing, increasing ;
- static int bounceCount = 0;
- static long bouncyNumbers = 0;
- static double per = 0;
- static void Main(string[] args)
- {
- System.Diagnostics.Stopwatch sw = new System.Diagnostics.Stopwatch();
- Console.WriteLine("Please enter the percentage of Bouncy numbers to be found");
- double perLimit = Convert.ToDouble(Console.ReadLine());
- sw.Start();
- while (per < perLimit)
- {
- var tmpNum = ++seed;
- if (digits < seed) { digits *= 10; }
- do
- {
- i *= 10;
- var res = tmpNum % 10;
- tmpNum = (tmpNum - res) / 10;
- if (auxNumber < res) { increasing = true; }
- else if (auxNumber > res) { decreasing = true; }
- if (!(increasing ^ decreasing) &&
- (auxNumber != null) && (auxNumber != res)){
- bounceCount += 1;
- }
- if (bounceCount > 0) { bouncyNumbers++; break; }
- auxNumber = res;
- } while (i < digits);
- increasing = decreasing = false;
- bounceCount = 0;
- auxNumber = null;
- i = 1;
- double count = bouncyNumbers;
- per = (count / seed) * 100;
- }
- sw.Stop();
- Console.WriteLine("Percentage Achieved : "+per+"%");
- Console.WriteLine("Total numbers generated : " + seed);
- Console.WriteLine("Bouncy Numbers found : " + bouncyNumbers);
- Console.WriteLine("Time Elapsed : "+sw.ElapsedMilliseconds +" ms");
- Console.ReadLine();
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement