Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
1 / 1 / 0
Регистрация: 05.10.2013
Сообщений: 78
1

Не могу понять алгоритм задачи

08.10.2013, 17:07. Показов 414. Ответов 5
Метки нет (Все метки)

Изучаю язык C, да и в обще программирование совсем не давно. Ни как не могу придумать нормального решения для данной задачи. Вроде можно делать через раскладывание этого числа на: десятки, сотни и тысячи (в какой-то степени), или же через "if", но ни чего не выходит . Помогите понять эту задачку.кому не сложно.
Дано натуральное четырехзначное число n. Верно ли, что это число содержит ровно три одинаковых цифры, как например числа 6676, 4544, 0006.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
08.10.2013, 17:07
Ответы с готовыми решениями:

Не могу понять условия задачи
Есть задача из Прата: Мы можем дать такое описание простого списка: • Простой список может...

Не могу понять постановку задачи
Всем доброго времени суток! Есть задача, с помощью перегруженной операции *, создать возможность...

Не могу понять требование задачи
Входной файл содержит набор целых десятичных чисел, каждое из которых не превышает 30 десятичных...

Ну могу понять суть задачи
Вот задача.Я не пойму что делать с х1=х2=х3-1 и хi Найти S...

5
10 / 8 / 1
Регистрация: 31.05.2013
Сообщений: 65
08.10.2013, 17:57 2
сделай число char[4], мне кажется так можно если введут не цифру - ошибку, а там уж не сложно вроде
0
188 / 187 / 46
Регистрация: 24.03.2011
Сообщений: 670
08.10.2013, 17:57 3
алгоритм следующий:
сперва проверяешь остаток от деления на 10:
C++
1
6676%10; //6
Затем отбрасываешь единицы, т.е. последнюю цифру деление нацело на 1:
C++
1
6676/10; //667
И повторяешь эти действия пока не получишь в итоге от деления нацело 0
0
98 / 98 / 47
Регистрация: 19.11.2012
Сообщений: 195
08.10.2013, 18:03 4
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>
using namespace std;
 
int main() {
    int number = 6676; // abcd = 6676, a=6, b=6, c=7, d=6
    int a,b,c,d;
    a=number/1000;        // a = 6676/1000 = 6
    b=(number%1000)/100;  // b = (6676%1000)/100 = 676/100 = 6
    c=(number%100)/10;    // c = (6676%100)/10 = 76/10 = 7
    d=number%10;          // d = 6676%10 = 6
    // число благоприятных случаев =
    // число способов выбрать 3 числа из 4х =
    // число сочетаний без повторений из 4х по 3 = (4!)/(3!(4-3)!)=24/6=4 случая
    // перечислим их: (a=b=c)!=d (a=b=d)!=c (a=c=d)!=b (b=c=d)!=a
 
    if(a==b && b==c && c!=d)
        cout << "abcd = " << number << ", (a=b=c)!=d\n";
    else if(a==b && b==d && d!=c)
        cout << "abcd = " << number << ", (a=b=d)!=c\n";
    else if(a==c && c==d && d!=b)
        cout << "abcd = " << number << ", (a=c=d)!=b\n";
    else if(b==c && c==d && d!=a)
        cout << "abcd = " << number << ", (b=c=d)!=a\n";
    else cout << "В числе нет 3 одинаковых цифры.\n";
    getchar();
}
0
544 / 93 / 49
Регистрация: 16.12.2011
Сообщений: 317
08.10.2013, 18:14 5
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
27
28
29
30
31
#include<iostream>
using namespace std;
 
bool func(char *string) {
    int count = 0;
    for(int i = 0; i < strlen(string); i++) {
        for(int j = 0; j < strlen(string); j++) {
            if(string[i] == string[j])
                count++;
        }
        if(count == 3)
            return true;
        count = 0;
    }
    return false;
}
 
int main() {
    int number;
    cout << "enter number: ";
    cin >> number;
    char buf[5];
    char *string = itoa(number, buf, 10);
    if(func(string)) {
        cout << "there are 3 equal digits in this number" << endl;
    } else {
        cout << "there are not 3 equal digits in this number" << endl;
    }
    system("pause");
    return 0;
}
Добавлено через 2 минуты
TrueBit, а если число 10 значное и надо проверить не будет ли там 9 одинаковых цифр?
0
1 / 1 / 0
Регистрация: 05.10.2013
Сообщений: 78
08.10.2013, 18:24  [ТС] 6
Всем спасибо за ответы, многое из того ,что написали два последних "форумчанина" не понятно , это конечно из-за неграмотности , но в целом я понял как её решать. Всем ещё раз большое спасибо, очень помогли.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
08.10.2013, 18:24

Заказываю контрольные, курсовые, дипломные работы и диссертации здесь.

Не могу понять решения задачи
Звучит она так: Составить программу, которая создаёт файл и записывает в него 5 введеных целых...

Не могу понять обьяснение задачи
Всем доброго дня.. Ребят вот мне объяснил учитель одну задачку, но в этой задаче я не могу понять...

Не могу до конца понять условие задачи
Здравствуйте. Задача 9.5 из учебника программированию Б. Страуструпа: Классы Book и Patron у...

Не могу понять ошибку .Не выводит ответ задачи
#include &lt;iostream&gt; using namespace std; int main () { setlocale (LC_ALL,&quot; &quot;); int...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.