Определить количество натуральных чисел, не больше N, в десятичной записи которых нет тройки - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Имя входного файла: new_game2.in Имя выходного файла: new_game2.out Ограничение времени: 100 мс Ограничение памяти: 128 M Після гри зі словами Степан вирішив придумати ще й гру з цифрами. До того ж не з усіма - а тільки з трійкою. Задано натуральне число N. Необхідно визначити кількість натуральних чисел, не більших за N, у десятковому запису яких немає трійки. Допоможіть Степану - напишіть програму яка вирішить його проблему. Формат вхідних даних: У вхідному файлі знаходиться одне натуральне число N (1 ≤ N ≤ 1018). Формат вихідних даних: Вихідний файл має містити одне число – відповідь на поставлену задачу.

Решение задачи: «Определить количество натуральных чисел, не больше N, в десятичной записи которых нет тройки»

textual
Листинг программы
  1. #include <stdio.h>
  2. #include <math.h>
  3.  
  4. int hasThree(_int64 num)
  5. {   while(num>0)
  6.     {   if(num % 10 == 3)
  7.             return 1;
  8.         num /= 10;
  9.     }
  10.     return 0;
  11. }
  12.  
  13. _int64 pow9(int p)
  14. {   _int64 res = 1;
  15.     while(p-- > 0)
  16.         res *= 9;
  17.     return res;
  18. }
  19.  
  20. _int64 pow10(int p)
  21. {   _int64 res = 1;
  22.     while(p-- > 0)
  23.         res *= 10;
  24.     return res;
  25. }
  26.  
  27. int main()
  28. {   unsigned _int64 N, i, count;
  29.     int len;
  30.    
  31.     scanf("%I64u", &N);
  32.     len = (int) log10(N*1.);
  33.  
  34.     for(i = pow10(len), count = pow9(len) - 1; i<=N; i++)
  35.         if(!hasThree(i))
  36.             count++;
  37.  
  38.     printf("%I64u",count);
  39.    
  40.     getchar();getchar();
  41.     return 0;
  42. }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

13   голосов , оценка 4.231 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы