Разные цифры - 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.

  1. Создаются две переменные i и j, которые будут использоваться в циклах.
  2. Создается массив arr размером 10 для хранения цифр.
  3. Ввод с клавиатуры двух чисел n1 и n2, которые будут использоваться в качестве границ для цикла.
  4. Цикл перебирает все числа от n1 до n2.
  5. Для каждого числа вызывается функция CheckMachine, которая проверяет, содержит ли число только уникальные цифры.
  6. Если функция CheckMachine вернула 0, то число добавляется в вывод с помощью функции printf.
  7. После завершения цикла выводится символ табуляции.
  8. Программа завершается.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

13   голосов , оценка 3.846 из 5
Похожие ответы