Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.62/29: Рейтинг темы: голосов - 29, средняя оценка - 4.62
 Аватар для Snohodec
0 / 0 / 0
Регистрация: 13.02.2013
Сообщений: 49

Найти количество чисел, в записи которых нет одинаковых цифр

27.11.2015, 00:32. Показов 5678. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
В ВУЗе лабораторная работа по программированию, а преподаватель наша заболела. В первые 4 лабораторные я худо-бедно вник. А вот дальше застопорился. Задание таково:
Программа вводит n положительных целых чисел. Найти количество чисел, в записи которых нет одинаковых цифр. Например, для последовательности чисел: 123, 51, 3473, 4, 44 ответ 3 (это числа 123, 51, 4)

Сам допер до следующего:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include "stdafx.h"
#include <conio.h>
#include <iostream>
#include <math.h>
 
using namespace std;
 
void main() {
    int i;  // i-ый член массива
    int a[10]; // объявление массива
    for (i=0; i<10; i++) { a[i]=rand(); cout<<a[i]<< endl; } //Заполнение массива числами и их вывод, для контроля
    system("pause");
}
На этом мои скромные познания в c++ иссякли. По моим прикидкам, нужно число преобразовать в строку и посимвольно проверить на повторение. Трудность в том, что как это написать в коде я не понимаю. Пытался найти темы с похожей задачей (там где повторяющиеся буквы в словах) но прибить к своей задаче так и не смог. Если можно, киньте хотя бы тему где можно почитать о том, как мне это сделать. Или код с пояснениями. Чтобы разобраться.

Не по теме:

А то сессия близко, А без сданных лабораторных не допустят ведь... Спасите-Помогите!! =)

0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
27.11.2015, 00:32
Ответы с готовыми решениями:

Найти все натуральные числа в диапазоне между m и n (m<n), в записи которых нет двух одинаковых цифр. Подсчитать количество таких чисел.
Найти все натуральные числа в диапазоне между m и n (m&lt;n), в записи которых нет двух одинаковых цифр. Подсчитать количество таких чисел.

Найти количество простых чисел, не превосходящих N, в десятичной записи которых нет четных цифр
Задано натуральное число N. Найти и вывести одно число - количество простых чисел, не превосходящих N, в десятичной записи которых нет...

Нахождение всех четырехзначных натуральных чисел, в записи которых нет одинаковых цифр».
разработать программу и подпрограмму (подпрограммы), выполняющие действия «Нахождение всех четырехзначных натуральных чисел, в записи...

4
 Аватар для Chertenok_n_13
219 / 125 / 99
Регистрация: 14.03.2011
Сообщений: 628
27.11.2015, 00:56
Snohodec, я бы делала так.
вводила число, разбивала его на цифры заносила их в массив, сортировала и сравнивала i и i+1. Если где-то встречалось равенство, то флаг переводила в истину.
Если после проверки флаг остался ложью, то говорила, счетчик увеличила бы на 1.
и так со всеми.
может быть, это можно как-то и быстрее и проще сделать.
0
4949 / 2289 / 287
Регистрация: 01.03.2013
Сообщений: 5,984
Записей в блоге: 32
27.11.2015, 01:07
Цитата Сообщение от Chertenok_n_13 Посмотреть сообщение
может быть, это можно как-то и быстрее и проще сделать
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
int m[10];
 
void c(int i) {if (i) {m[i-1]=0; c(i-1);}}
 
bool t(int n) {if (n) {m[n%10]++; return m[n%10]>1 || t(n/10);} else return 0;}
 
bool f(int n) {c(10); return !t(n);}
 
int main(void) {
    cout<<f(1)<<'\n';    
    cout<<f(11)<<'\n';
    cout<<f(12)<<'\n';
}
0
Dimension
595 / 463 / 223
Регистрация: 08.04.2014
Сообщений: 1,710
27.11.2015, 01:12
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <bits/stdc++.h>
using namespace std;
int check(int a){
    int used[10];
    fill(used,used+10,0);
    while(a)
        used[a%10]++,a/=10;
    for(int i=0;i<10;i++)
        if(used[i]>1)
            return 0;
    return 1;   
}
int main() {
    int n,x,answer=0;
    cin>>n;
    for(int i=0;i<n;i++){
        cin>>x;
        if(check(x))
            answer++;
    }
cout<<answer;   
    return 0;
}
0
 Аватар для Геомеханик
838 / 641 / 940
Регистрация: 26.06.2015
Сообщений: 1,409
27.11.2015, 09:07
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#include <iostream>
 
bool is_unique(int n){
    unsigned shf = 0x3FF;
    for(int i; n != 0; n /= 10){
        i = n % 10;
        if(!((shf >> i) & 1))
            return false;
        shf &= ~(1 << i);
    }
    return true;
}
 
int main(void){
    int a[] = { 123, 51, 3473, 4, 44 };
    int n   = sizeof(a)/sizeof(a[0]);
    int k   = 0;
    for(int i = 0; i < n; ++i){
        if(is_unique(a[i])){
            std::cout << a[i] << ' ';
            ++k;
        }
    }
    std::cout << std::endl << "count: " << k << std::endl;
    return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
27.11.2015, 09:07
Помогаю со студенческими работами здесь

Найти все натуральные числа в диапазоне между m и n, в записи которых нет двух одинаковых цифр
Всем привет. Найти все натуральные числа в диапазоне между m и n (m&lt;n), в записи которых нет двух одинаковых цифр. Подсчитать количество...

Среди десятичных чисел найти те, в которых нет одинаковых цифр
Доброї ночі всім!!!Дуже Потрібна ваша допомога.На завтра обов'язково =(дякую за увагу і допомогу. Написати програму мовою С++ до задачі: ...

Вывести на консоль количество простых чисел, не превосходящих N, в десятичной записи которых нет четных цифр
Дано число N. Вывести одно число - количество простых чисел, не превосходящих N, в десятичной записи которых нет четных цифр.

Вывести все четырехзначные числа в записи которых нет двух одинаковых цифр
Вывести все четырехзначные числа в записи которых нет двух одинаковых цифр. Например 1234;1345;1789;6789. Выполнить без функций и...

Выведите на экран все четырехразрядные числа, в записи которых нет одинаковых цифр
Помогите написать код,очень Вас прошу.. вот условие: Выведите на экран все четырехразрядные числа, в записи которых нет одинаковых цифр. ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru