Онлайн компилятор C

#include <stdio.h> int main() { int num; scanf("%d", &num); // 输入整数 int num1 = num; // 保存原数字 int has_duplicate = 0; // 标记是否有重复数字 // 处理负数 if (num < 0) { num = -num; } // 保存原数字用于后续检查 int temp = num; // 使用数组记录每个数字是否出现过 int digits[10] = {0}; // 索引0-9对应数字0-9 while (temp > 0) { int digit = temp % 10; // 获取最后一位数字 digits[digit]++; // 记录数字出现次数 temp /= 10; // 去掉最后一位 } // 检查是否有数字出现超过一次 for (int i = 0; i < 10; i++) { if (digits[i] >= 2) { has_duplicate = 1; break; } } printf(has_duplicate ? "YES\n" : "NO\n"); return 0; }
1) Этот код проверяет, есть ли в введённом целом числе повторяющиеся цифры. Он обрабатывает отрицательные числа, подсчитывает количество вхождений каждой цифры и выводит "YES", если есть дубликаты, и "NO" в противном случае.

2) Подсказки:
- Обрати внимание, как обрабатывается отрицательное число (убирается знак минус).
- Массив `digits` используется для подсчёта количества каждой цифры (0-9) в числе.