Разные цифры - C (СИ)
Формулировка задачи:
Для заданных натуральных чисел N1 и N2 найти количество чисел между этими числами (включительно и эти числа), в записи которых не содержатся одинаковые цифры.
Формат входных данных
В одной строке заданы два числа N1 и N2 (1 <= N1, N2 <= 100000).
Формат выходных данных
Выведите количество искомых чисел.
Пример входных данных
20 30
Пример выходных данных
10
Решил задачу прошло на 60 % Вот код : Пожалуйста помогите мне решить задачу !!
#include <iostream> using namespace std; int main() { long long r[10]={0}; long long n1,n2,i,m, k, j, say=0, c=0; cin>>n1>>n2; for(i=n1;i<=n2;i++){ m=i; c=0; for(j=0; j<=9; j++) r[j]=0; while (m>0) { k=m%10; r[k]++; if (r[k]>1) c=1; m/=10;} if(c==0) say++; } cout<<say<<endl; return 0; }
Решение задачи: «Разные цифры»
textual
Листинг программы
#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> int CheckMachine(int a, int *arr) { int i, j, flag = 1; int a1 = a, a2 = a, count = 0; while (a1 != 0) // Кол-во цифер в числе { a1 = a1 / 10; count++; } for (i = 0; i < count; i++) // Каждую цифру в отделный элемент масива { arr[i] = a2 % 10; a2 = a2 / 10; } for (i = count - 1; i >= 0; i--) // Чекаю на повторяющейся циферу { // Возвращает 0 если годится иначе 1 for (j = i-1; j >= 0; j--) if (arr[i] == arr[j]) { return 1; } } return 0; } int main() { int n1, n2, i; int arr[10]; printf("Input n1 n2: "); scanf("%d%d", &n1,&n2); for (i = n1; i <= n2; i++) { if (CheckMachine(i, arr) == 0) printf("%d\t", i); } printf("\n"); return 0; }
Объяснение кода листинга программы
Вывод программы представляет собой список чисел от n1 до n2, которые содержат в себе только уникальные цифры. Каждое число проверяется на соответствие условию с помощью функции CheckMachine.
- Создаются две переменные i и j, которые будут использоваться в циклах.
- Создается массив arr размером 10 для хранения цифр.
- Ввод с клавиатуры двух чисел n1 и n2, которые будут использоваться в качестве границ для цикла.
- Цикл перебирает все числа от n1 до n2.
- Для каждого числа вызывается функция CheckMachine, которая проверяет, содержит ли число только уникальные цифры.
- Если функция CheckMachine вернула 0, то число добавляется в вывод с помощью функции printf.
- После завершения цикла выводится символ табуляции.
- Программа завершается.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д