Другие языки программирования и технологии

Программа на языке Си

Шестизначный номер билета является счастливым, если сумма первых трех цифр равна сумме трех последних. Даны числа a и b. Найти количество счастливых номеров билетов в диапазоне [a;b].
#include <stdio.h>
#include <math.h>
int check(int);
int search(int);
int sum(int);
void swap(int*, int*);
int main() {
int a, b, count = 0;
do {
printf("Input a: ");
scanf_s("%i", &a);
} while (check(a));
do {
printf("Input b: ");
scanf_s("%i", &b);
} while (check(b));
if (a > b) swap(&a, &b);
while (a <= b) {
if (search(a)) ++count;
++a;
}
printf("Count: %d\n", count);
fflush(stdin);
getchar();
}
int check(int num) {
return num <= 0 || num > 999999? 1 : 0;
}
int search(int ticket) {
int prev = ticket - 1;
int current = ticket;
int next = ticket + 1;
int head = current / 1000;
int temp = head * 1000;
int tail = current - temp;
int happy = 0;
if (head && abs(sum(head) - sum(tail)) == 1) {
head = prev / 1000;
tail = prev - temp;
if (sum(head) == sum(tail)) happy = 1;
else {
head = next / 1000;
tail = next - temp;
if (sum(head) == sum(tail)) happy = 1;
}
}
return happy;
}
int sum(int num) {
return num / 100 + num % 10 + (num / 10) % 10;
}
void swap(int* a, int* b) {
int tmp = *a;
*a = *b;
*b = tmp;
}
Владимир Сергеев
Владимир Сергеев
80 752
Лучший ответ
Ну да, пару мин работы в среде программирования...

Да и... это не программа, а ТЗ)
Ербол Байкенов
Ербол Байкенов
32 943
Алексей Каменщиков Меня интересует цикл for