Определить количество счаливых билетов - C (СИ)
Формулировка задачи:
определить количество счаливых билетов если количество цифр задаётся пользователем и оно чётное и меньше или равно 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, которая запрашивает у пользователя количество цифр и сами цифры, а затем вызывает функцию isHappy, чтобы определить количество счастливых цифр. Результат выводится на экран.
Вот список основных переменных и их значений в коде:
- n — количество счастливых цифр
- i — счётчик для цикла в функции main
- number — количество цифр, введенных пользователем
- digits — массив цифр, введенных пользователем
- odd — сумма нечетных цифр числа
- even — сумма четных цифр числа
- digit — текущая цифра, вводимая пользователем
- buf — буфер для преобразования числа в строку
- j — счётчик для цикла в функции isHappy
- CHAR_ZERO — ASCII-код символа '0' (48)