Пример работы с системой ACMP: различия между версиями
Перейти к навигации
Перейти к поиску
Ctrlalt (обсуждение | вклад) (Новая страница: «Рассмотрим процесс решения на примере [http://acmp.ru/index.asp?main=task&id_task=274 задачи №274 «Дружные …») |
(нет различий)
|
Версия от 06:24, 7 июля 2013
Рассмотрим процесс решения на примере задачи №274 «Дружные числа».
Логика решения достаточно проста: для каждого из проверяемых чисел опишем логический массив, в котором i-ый элемент равен 1, если число содержит цифру i. Два числа являются дружными тогда и только тогда, когда соответствующие им массивы поэлементно равны.
Ниже показаны функции для определения логических массивов и их сравнения.
void getDigits(int n, bool dn[]) {
while (n) {
dn[n % 10] = true;
n /= 10;
}
}
|
bool compareDigits(bool da[], bool db[]) {
for (int i = 0; i < 10; i++)
if (da[i] != db[i])
return false;
return true;
}
|
Основная функция может иметь следующий вид:
int main() {
int testCnt, a, b;
bool da[10], db[10];
scanf("%d", &testsCnt);
for (int i = 0; i < testsCnt; i++) {
scanf("%d%d", &a, &b);
getDigits(a, aDig);
getDigits(b, bDig);
printf("%s\n", compareDigits(da, db) ? "YES" : "NO");
}
return 0;
}