Определить количество счаливых билетов если количество цифр задаётся пользователем - C (СИ) (75153)

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

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

определить количество счаливых билетов если количество цифр задаётся пользователем и оно чётное и меньше или равно 10 . счасливым является билет у которого сума цифр на чётных позициях равна суме цифр на нечётных позициях.

Решение задачи: «Определить количество счаливых билетов если количество цифр задаётся пользователем»

textual
Листинг программы
#include<conio.h>
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define CHAR_ZERO 48
 
int isHappy(int *digits, int number) {
    int n = 0, i, j, odd = 0, even = 0;
    char *digit;
    char buf[10];
    for(i = 0; i < number; i++) {
        digit = itoa(digits[i], buf, 10);
        for(j = 0; j < strlen(digit); j++) {
            if(j % 2 == 0) {
                odd += (int)digit[j] - CHAR_ZERO;
            } else if(j % 2 != 0) {
                even += (int)digit[j] - CHAR_ZERO;
            }
        }
        if(odd == even) {
            n++;
        }
 
    }
    return n;
}
 
int main() {
    int number, i, n;
    int *digits;
    printf("Enter the number of digits:");
    scanf("%d", &number);
    digits = (int *)malloc(number * sizeof(int));
    for(i = 0; i < number; i++)
        scanf("%d", &digits[i]);
    n = isHappy(digits, number);
    printf("Number of happy digits is: %d", n);
    free(digits);
    getch();
    return 0;
}

Объяснение кода листинга программы

Вывод: Код определяет функцию isHappy, которая принимает два аргумента: массив целых чисел digits и число number. Функция проверяет, является ли число счастливым (когда сумма цифр вдвое меньше, чем их произведение) и возвращает количество счастливых чисел. В функции main пользователю предлагается ввести количество цифр, а затем вводится само число. Результатом работы программы является количество счастливых цифр в числе. Список элементов кода:

  1. Объявление переменных:
    • n - счётчик счастливых чисел
    • i, j - счётчики цифр числа
    • odd, even - счётчики для проверки чётности цифр
    • digit - указатель на текущую цифру
    • buf - буфер для преобразования цифры в строку
    • CHAR_ZERO - константа, равная числу 48 (код символа '0' в ASCII)
  2. Преобразование каждой цифры числа в строку и вычисление суммы и разности цифр.
  3. Проверка, является ли сумма равной произведению.
  4. Если условие выполняется, увеличивается счётчик счастливых чисел.
  5. Ввод количества цифр и самого числа.
  6. Вызов функции isHappy с аргументами digits и number.
  7. Вывод результата на экран.
  8. Освобождение памяти, выделенной под массив digits.
  9. Ожидание нажатия клавиши.

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


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

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

13   голосов , оценка 4.077 из 5
Похожие ответы