Няшная / Говнокод #21604 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
  11. 11
  12. 12
  13. 13
  14. 14
  15. 15
  16. 16
  17. 17
  18. 18
  19. 19
  20. 20
  21. 21
  22. 22
  23. 23
  24. 24
  25. 25
  26. 26
  27. 27
  28. 28
  29. 29
  30. 30
  31. 31
  32. 32
  33. 33
  34. 34
  35. 35
#include <stdio.h>
#include <stdlib.h>
#include <math.h>

int main()
{
   int i,n,a,b,f=0,k=0;

   scanf("%d",&n);

   for(i=1;i<=n;i++){
   }

   while(i!=0){
    i=i/10;
    f++;
   }

    while(i<=n){

    a=a/10;
    b=b/10;
    a=a%10;
    b=b%10;

    i=a%(pow(10,f))+b*(pow(10,f));
    if(i%a==0&&i%b==0)k++;

    i=i/10;
    i=i%10;
}
    printf("%d",k);

    return 0;
}

Найти количество натуральных чисел, не превосходящих N, и делящихся на каждую из своих цифр.

Запостил: plkvich691 plkvich691, (Updated )

Комментарии (6) RSS

  • Я у мамы программист:
    <?php
    
    echo getQuantity(0, 1000000) . PHP_EOL;
    
    function getQuantity(int $min, int $max): int {
            if ($min > $max) {
                return 0;
            }
    
            for ($i = $number = $min; $i <= $max; $i++, $number = $i) {
                for ( ; $number > 0; $number /= 10) {
                    @$digit = $number % 10;
                    if (!$i || !$digit) {
                        continue;
                    }
                    if ($i % $digit) {
                        continue 2;
                    }
                }
                @$quantity += 1;
            }
            return $quantity;
        }
    ?>
    Ответить
    • <?php
      # -_-
      echo getQuantity(0, 10000000) . PHP_EOL;
      
      function getQuantity(int $min, int $max): int {
          if ( $min > $max ) {
              return 0;
          }
      
          for ( $i = $number = $min; $i < $max; $i += 1, $number = $i ) {
              for ( ; $number > 0; $number /= 10 ) {
                  @$digit = $number % 10;
                  if ( !$i || !$digit ) {
                      continue;
                  }
                  if ( $i % $digit ) {
                      continue 2;
                  }
              }
              @$quantity += 1;
          }
          return $min <= 0? $quantity - 1: $quantity;
      }
      
      ?>
      Ответить
  • > a=a/10;
    > b=b/10;
    > a=a%10;
    > b=b%10;
    >
    > i=a%(pow(10,f))+b*(pow(10,f));
    > if(i%a==0&&i%b==0)k++;
    >
    > i=i/10;
    > i=i%10;
    Похоже, задачу попытались решить полным перебором всех решений.
    Ответить
    • Я всегда так делаю.

      Пытаюсь разные значки подставить и смотрю чтобы результат был правильный. У меня просто памяти плохая, я не всегда помню какой значок за что отвечает
      Ответить

Добавить комментарий

Я, guest, находясь в здравом уме и твердой памяти, торжественно заявляю:

    А не использовать ли нам bbcode?


    8