Загрузка...

Помогите решить задачи на языке C

Тема в разделе C/C++ создана пользователем Ryouske 29 окт 2022. 238 просмотров

  1. Ryouske
    Ryouske Автор темы 29 окт 2022 Заблокирован(а) 2 29 сен 2020
    Написать процедуру, которая находит на отрезке [n,m] первое из чисел с максимальным количеством делителей.

    Дано натуральное число N. Написать функцию, которая возвращает количество наибольших цифр в записи числа N
     
  2. LVV
    привет, стукни в тг, могу за копейку помочь
     
  3. olmovc
    olmovc 3 янв 2023 0 1 янв 2023
    C
    /* Дано натуральное число N. Написать функцию, которая возвращает количество
    наибольших цифр в записи числа N */
    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    #include <math.h>

    int main()
    {
    size_t N = 77576;

    // count of digits of number
    int size_array = (int)ceil(log10(N));

    // create char array
    char *charray = (char *)calloc(size_array + 1, sizeof(char));
    // enter number to char array
    sprintf_s(charray, size_array + 1, "%llu", N);
    printf_s("\nstr = %s\tsize_arr=%d\n", charray, size_array);

    // create int array
    int *iarray = (int *)calloc(size_array, sizeof(int));

    // enter digits of number to int array
    for (size_t i = 0; i < size_array; i++)
    {
    iarray[i] = charray[i] - '0';
    printf("d[%llu]=%d\t\n", i, iarray[i]);
    }
    // find max value of digits
    int max_digit = 0;
    for (size_t i = 0; i < size_array; i++)
    {
    if (max_digit < iarray[i])
    {
    max_digit = iarray[i];
    }
    }
    printf("maxdig = %d\n", max_digit);
    // get count of max digits
    int count_max_digit = 0;
    for (size_t i = 0; i < size_array; i++)
    {
    if (max_digit == iarray[i])
    {
    count_max_digit++;
    }
    }
    printf("\nCount maxdig = %d\n", count_max_digit);

    free(charray);
    free(iarray);
    return 0;
    }
     
Top
Загрузка...