Du kan inte välja fler än 25 ämnen Ämnen måste starta med en bokstav eller siffra, kan innehålla bindestreck ('-') och vara max 35 tecken långa.

42 lines
863B

  1. //
  2. // Created by red on 04/12/19.
  3. //
  4. #include <stdio.h>
  5. #include <stdbool.h>
  6. #include <stdlib.h>
  7. int power(int base, int pow){
  8. if (pow <= 0) return 1;
  9. return base*power(base,pow-1);
  10. }
  11. int main(){
  12. const int lower = 152085;
  13. const int upper = 670283;
  14. int digits[6];
  15. int ctr = 0;
  16. for (size_t i = lower; i <= upper; i++){
  17. for (size_t j = 0; j < 6; j++) {
  18. int mult = power(10, j);
  19. digits[j] = ((int) i % (10*mult)) / mult;
  20. }
  21. bool dd = false;
  22. bool increasing = true;
  23. int run = 1;
  24. for (size_t j = 1; j < 6; j++) {
  25. if (digits[j] == digits[j-1]) run++;
  26. else {
  27. if (run == 2) dd = true;
  28. run = 1;
  29. }
  30. if (digits[j] > digits[j-1]) increasing = false;
  31. }
  32. if (run == 2) dd = true;
  33. if (dd && increasing) ctr++;
  34. }
  35. printf("%d numbers found\n", ctr);
  36. return EXIT_SUCCESS;
  37. }