Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.63/68: Рейтинг темы: голосов - 68, средняя оценка - 4.63
33 / 32 / 14
Регистрация: 11.08.2011
Сообщений: 158
1

Определить, повторяются ли цифры в числе

11.08.2011, 11:19. Показов 14062. Ответов 43
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Нужно ввести число и в результате получить сообщение повторяются цифры в числе или нет.Способ определения может быть любым. Число нужно вводить полностью(не через пробел
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
11.08.2011, 11:19
Ответы с готовыми решениями:

Удалить те числа, где цифры в этом числе повторяются
стоит задача: в первой колонке находятся все четырёхзначные числа, необходимо удалить те числа где...

Если в числе все цифры разные то истина, если повторяются то ложь
Пожалуйста помогите! я в паскаль ваще мало втыкаю ...и не магу понять как решить вот эти две...

Сколько чисел можно образовать из цифр 0,2,4,8, если цифры повторяются\не повторяются?
Сколько чисел можно образовать из цифр 0,2,4,8, если цифры повторяются\не повторяются?

Если в данном числе есть цифры "2" и "5", то определить, какая из них расположена в числе левее
Помогите, пожалуйста.Нужно составить циклы с предусловием и постусловием. VBA Задание Дано...

43
Кошковед
521 / 509 / 63
Регистрация: 12.04.2010
Сообщений: 1,390
11.08.2011, 11:29 2
не проверял, но должно работать.
ПС: больше 9 символов вводить не стоит. да и int столько не схавает
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 <iosrteam>
using std::cout;
using std::endl;
using std::cin;
 
int main()
{
    cout << "Enter the value: ";
    int number;
    cin >> number;
    int mas[9];
    int counter = 0;
    while ( number > 9 )
    {
        mas[counter++] = number%10;
    }
    for ( int i = 0; i < counter-1; i ++ )
    {
        for ( int j = i+1; j < counter; j ++ )
            if ( mas[i] == mas[j] ) cout << "Got digit: " << mas[i] << endl;
    }
    
}
0
5231 / 3204 / 362
Регистрация: 12.12.2009
Сообщений: 8,116
Записей в блоге: 2
11.08.2011, 11:29 3
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include<iostream>
#include<algorithm>
#include<string>
 
int main(){
    std::string str;
    std::cout<<"Enter number: ";
    std::cin>>str;
    std::sort(str.begin(),str.end());
    if(std::unique(str.begin(),str.end())==str.end())
        std::cout<<"numbers are not repeated\n";
    else std::cout<<"numbers are repeated\n";
    return 0;
}
0
33 / 32 / 14
Регистрация: 11.08.2011
Сообщений: 158
11.08.2011, 11:33  [ТС] 4
Спс ща попробую ,,,
быстрые вы !
0
5231 / 3204 / 362
Регистрация: 12.12.2009
Сообщений: 8,116
Записей в блоге: 2
11.08.2011, 11:33 5
co6ak,
C++
1
2
3
4
    while ( number > 9 )
    {
        mas[counter++] = number%10;
    }
а кто number делить будет?
1
1405 / 647 / 135
Регистрация: 11.08.2011
Сообщений: 2,299
Записей в блоге: 2
11.08.2011, 11:34 6
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream>
int main()
{
    int n,a[10]={0};
    bool isp=false;
    std:: cin >> n;
    while (n != 0)
    {
          a[n%10]++;
          n /= 10;
          if (a[n%10]>1) isp=true;
    }
    
    if (isp=true)
    {
    std:: cout << "Povt. chifry - ";
    for (int i=0; i<10; i++)
    if (a[i]>1) std::cout << i << " ";
    }
    else std:: cout << "Povt chifr net";
    return 0;
}
0
33 / 32 / 14
Регистрация: 11.08.2011
Сообщений: 158
11.08.2011, 11:44  [ТС] 7
А что такое std: и как его можно заменить, я просто только учу с++
а эт один из пунктов домашки ,,, я не об'ясню откуда я это взял (((
0
Заблокирован
11.08.2011, 11:44 8
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
string str;
    cin >> str;
 
    for (auto ch; str)
    {
        if (!isdigit(ch))
            throw std::logic_error("not a number");
    }
 
    for (auto ch; str)
    {
        if ( find(str.begin(), str.end(), ch) != str.end() )
            cout << ch << " is repeated" << endl;
    }
0
1405 / 647 / 135
Регистрация: 11.08.2011
Сообщений: 2,299
Записей в блоге: 2
11.08.2011, 11:46 9
Цитата Сообщение от Vepsar Посмотреть сообщение
А что такое std: и как его можно заменить, я просто только учу с++
а эт один из пунктов домашки ,,, я не об'ясню откуда я это взял (((
Это прастранство имен. Заменить можно так, написав после include
C++
1
using namespace std;
0
Кошковед
521 / 509 / 63
Регистрация: 12.04.2010
Сообщений: 1,390
11.08.2011, 11:47 10
а. буээ. точняк )
печалька
0
33 / 32 / 14
Регистрация: 11.08.2011
Сообщений: 158
11.08.2011, 11:48  [ТС] 11
Dani, больше всего понятен твой вариант СПС.
А можно переделать чтоб небыло std: и True/false . . .
0
Кошковед
521 / 509 / 63
Регистрация: 12.04.2010
Сообщений: 1,390
11.08.2011, 11:48 12
C++
1
2
3
4
5
    while ( number > 9 )
    {
        mas[counter++] = number%10;
        number/=10;
    }
0
5231 / 3204 / 362
Регистрация: 12.12.2009
Сообщений: 8,116
Записей в блоге: 2
11.08.2011, 11:58 13
LosAngeles, а на каком компиляторе у тебя подобные циклы поддерживаются? У меня не MSVS 2010, не последний g++ не компилируют.
0
848 / 190 / 18
Регистрация: 01.08.2011
Сообщений: 505
11.08.2011, 12:04 14
Цитата Сообщение от Vepsar Посмотреть сообщение
Нужно ввести число и в результате получить сообщение повторяются цифры в числе или нет.Способ определения может быть любым. Число нужно вводить полностью(не через пробел
А можно так еще, очень элегантно и красиво

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
int Check(long x)
{
   long i, y;
   int flag[10] = {0};
   y = abs(x);
   do{
      flag[y % 10]++;
      y /= 10;
   }while (y);
   i = 0;
   while (i < 10 && flag[i] < 2)
      i++;
   return i < 10;
}
 
int main()
{
   long x;
   scanf("%d", &x);
   printf("%s\n", Check(x) ? "povt" : "ne povt");
   getchar();
   return 0;
}
0
33 / 32 / 14
Регистрация: 11.08.2011
Сообщений: 158
11.08.2011, 12:06  [ТС] 15
Вот что получилось из кода Dani.
Только почеу-то када цифры не повторяются выводит "Povt. chifry:" и пусто, а "Povt chifr net" не выводит ,,,, при любом раскладе *-*



C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
{
    int n,a[10]={0};
    bool b=false;
    cin >> n;
    while (n != 0)
    {
          a[n%10]++;
          n /= 10;
          if (a[n%10]>1) b=true;
    }
    if (b=true)
    {
    cout << "Povt. chifry:";
    for (int i=0; i<10; i++)
    if (a[i]>1) 
    cout << i << " ";
    }
    else
    cout << "Povt chifr net";
    system("pause");
    return 0;
}
 Комментарий модератора 
Используйте теги форматирования кода!
0
1405 / 647 / 135
Регистрация: 11.08.2011
Сообщений: 2,299
Записей в блоге: 2
11.08.2011, 12:08 16
Цитата Сообщение от Vepsar Посмотреть сообщение
Dani, больше всего понятен твой вариант СПС.
А можно переделать чтоб небыло std: и True/false
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream>
using namespace std;
int main()
{
    int n,a[10]={0},isp=0;
    cin >> n;
    while (n != 0)
    {
          a[n%10]++;
          if (a[n%10]>1) isp=1;
          n /= 10;
    }
    
    if (isp==1)
    {
    cout << "Povt. chifry - ";
    for (int i=0; i<10; i++)
    if (a[i]>1) cout << i << " ";
    }
    else cout << "Povt chifr net";
    return 0;
}
1
Заблокирован
11.08.2011, 12:14 17
Цитата Сообщение от Kastaneda Посмотреть сообщение
LosAngeles, а на каком компиляторе у тебя подобные циклы поддерживаются? У меня не MSVS 2010, не последний g++ не компилируют.
ни на каком, это я на будущее написал)
0
848 / 190 / 18
Регистрация: 01.08.2011
Сообщений: 505
11.08.2011, 12:22 18
А так еще более экономно и интересно

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
long Check(long x)
{
   long y;
   int flag[10] = {0};
   y = abs(x);
   while (y && ++flag[y % 10] < 2)
      y /= 10;
   return (y != 0);
}
 
int main()
{
   long x;
   scanf("%d", &x);
   printf("%s\n", Check(x) ? "povt" : "ne povt");
   getchar();
   return 0;
}
0
33 / 32 / 14
Регистрация: 11.08.2011
Сообщений: 158
11.08.2011, 12:23  [ТС] 19
Спасиб всем все заработало !!!!!!!!
(ща еще тему создам может быть)
0
Kastaneda
11.08.2011, 12:37     Определить, повторяются ли цифры в числе
  #20

Не по теме:

LosAngeles, там кстати, если я не ошибаюсь, вместо символа ";" должен быть ":"

0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
11.08.2011, 12:37

Определить какие значения одномерного массива повторяются и сколько раз они повторяются
Само задание: Подсчитать какие значения элементов задаваемого пользователем одномерного массива...

Определить номер цифры в числе
Дано натуральное число. Определить номер некоторой заданной цифры в нем, считая от конца числа....

Определить есть ли в числе цифры 2 и 5
не могу составить программу в турбо паскале дано натуральное число. Определить есть ли в нем числа...

Определить есть ли равные цифры в числе
Помогите с кодом к этой задаче пожалуйста Определить есть ли равные цифры в числе Заранее...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru