Files
project-euler/problem-112.c
2019-03-02 21:35:39 -05:00

62 lines
791 B
C

#include <stdio.h>
#define TRUE 1
#define FALSE 0
int is_increasing(long num)
{
int digit;
int prev = num % 10;
num /= 10;
while (num>0) {
digit = num % 10;
if (digit>prev)
return FALSE;
num /= 10;
prev = digit;
}
return TRUE;
}
int is_decreasing(long num)
{
int digit;
int prev = num % 10;
num /= 10;
while (num>0) {
digit = num % 10;
if (digit<prev)
return FALSE;
num /= 10;
prev = digit;
}
return TRUE;
}
int is_bouncy(long num)
{
if (is_increasing(num) || is_decreasing(num))
return FALSE;
return TRUE;
}
int main(int argc, char** argv)
{
int i = 99;
int count = 0;
while((count*100) != (i*99)) {
i++;
if (is_bouncy(i))
count++;
}
printf("The solution is %d / %d = %.9f%%\n", count, i, (double)count/(double)i);
return 0;
}