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

Найти количество счастливых билетов учитывая скорость выполнения программы

17.02.2016, 21:01. Показов 1125. Ответов 19
Метки нет (Все метки)

Найти количество счастливых билетов учитывая скорость выполнения программы,счастливый билет имеет вид a+b+c=d+e+f.
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
17.02.2016, 21:01
Ответы с готовыми решениями:

Найти количество счастливых билетов с 6-значными номерами
Найти количество счастливых билетов в серии ABC, то есть с 6 - значными номерами вида ABCXXX,...

Найти количество счастливых билетов с шестизначными номерами
Построить алгоритм для нахождения количества счастливых билетов с шестизначными номерами. Билет...

Найти количество всевозможных шестизначных счастливых билетов
Найти количество всевозможных шестизначных счастливых билетов (для простого алгоритма потребуется...

Найти количество счастливых билетов
Назовем билет счастливым, если в его номере abcd (от 0000 до 9999) a+c=b+d. Найти количество таких...

19
Диссидент
Эксперт C
26355 / 16361 / 3558
Регистрация: 24.12.2010
Сообщений: 36,244
17.02.2016, 21:54 2
Цитата Сообщение от fortison Посмотреть сообщение
имеет вид
Я правильно понял, что сумма первых 3-х цифр = сумме трех последних?
Задача имеет аналитическое решение. В виде формулы.
Цитата Сообщение от fortison Посмотреть сообщение
учитывая скорость выполнения
В этом случае скорость = бесконечности (время решения = 0)
0
0 / 0 / 0
Регистрация: 25.01.2016
Сообщений: 17
18.02.2016, 12:56  [ТС] 3
Вы все правильно поняли.Каждая цифра от 0 до 9.В задании так написано,я сам не понимаю причем тут время выполнения.Наверное про время можно подзабыть.
0
Любитель чаепитий
3675 / 1750 / 544
Регистрация: 24.08.2014
Сообщений: 5,896
Записей в блоге: 1
18.02.2016, 13:09 4
fortison,
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream>
#include <algorithm>
#include <string>
using namespace std;
 
int main()
{
    int n;
    cin >> n;
    string str = to_string(n);
    int sum1,sum2;
    sum1 = int(str[0] + str[1] + str[2]);
    sum2 = int(str[3] + str[4] + str[5]);
    if(sum1 == sum2) cout << "It's lucky ticket!";
    else cout << "It's unlucky ticket!";
    cout << endl;
}
0
0 / 0 / 0
Регистрация: 25.01.2016
Сообщений: 17
18.02.2016, 13:37  [ТС] 5
makfak, мне надо определить количество этих билетов,каждая цифра от 0 до 9.
0
Диссидент
Эксперт C
26355 / 16361 / 3558
Регистрация: 24.12.2010
Сообщений: 36,244
18.02.2016, 13:49 6
Рассмотрим комбинации из трех цифр.
Суммы 0 и 27 дают по одной комбинация. Количество счастливых билетов = 2*1*1 = 2
Суммы 1 и 26 по 3 комбинации КСБ = 2*3*3 = 18
Суммы 2 и 25 по 6 комбинации КСБ = 2*6*6 = 72
...
Суммы 13 и 14 ....
И все это сложить
1
543 / 486 / 104
Регистрация: 05.05.2014
Сообщений: 1,110
18.02.2016, 14:06 7
3 и 24 по 10 комб КСБ = 2*10*10 = 200
4 и 23 по 15 комб.КСБ = 2*15*15 = 450
... А вот есть ли общая формула? До 9-ти точно есть Ck+22. А вот дальше начинает работать ограничение <= 9
0
0 / 0 / 0
Регистрация: 25.01.2016
Сообщений: 17
18.02.2016, 14:12  [ТС] 8
Проверьте пожалуйста
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
#include <algorithm>
#include <string>
using namespace std;
 
int main()
{
    int count=0;
    for(int i = 100000;i<999999;i++){
    string str = to_string(i);
    int sum1,sum2;
    sum1 = int(str[0] + str[1] + str[2]);
    sum2 = int(str[3] + str[4] + str[5]);
    if(sum1 == sum2) 
    count++;
    }
    cout<< count << endl;
    system("pause");
    return 0;
}
0
Диссидент
Эксперт C
26355 / 16361 / 3558
Регистрация: 24.12.2010
Сообщений: 36,244
18.02.2016, 14:33 9
Цитата Сообщение от fortison Посмотреть сообщение
Проверьте
Проверять не буду. т.к. алгоритм мне совершенно не нравится.А зачем проверять такие несовершенные алгоритмы?
Если хочешь программно, то это делается так
C++
1
2
3
4
5
6
7
8
int a[28];
for(n=0; n<1000; n++) {
  k = n%10 + n/100 + (n/10)%10;
  a[k]++;
}
for(i=count=0; i<28; i++)
  count += a[i]*a[i];
cout << count << endl;
1
0 / 0 / 0
Регистрация: 25.01.2016
Сообщений: 17
18.02.2016, 14:37  [ТС] 10
Байт, я знаю что алгоритм не оч.Но все же он работает правильно?
0
Объявлятель переменных
1030 / 336 / 300
Регистрация: 24.09.2011
Сообщений: 1,128
18.02.2016, 15:22 11
C++
1
2
3
4
5
6
#include <iostream>
using namespace std;
int main()
{
  cout << 55252;
}
0
Любитель чаепитий
3675 / 1750 / 544
Регистрация: 24.08.2014
Сообщений: 5,896
Записей в блоге: 1
18.02.2016, 15:37 12
SpBerkut, 50411*
0
Объявлятель переменных
1030 / 336 / 300
Регистрация: 24.09.2011
Сообщений: 1,128
18.02.2016, 16:07 13
Цитата Сообщение от makfak Посмотреть сообщение
SpBerkut, 50411*
С чего это? Номер 000001 — это тоже номер.
0
20 / 27 / 1
Регистрация: 14.03.2015
Сообщений: 792
18.02.2016, 17:07 14
Вот моя попытка,
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
32
33
#include "stdafx.h"
#include <iostream>
using namespace std;
 
int _tmain(int argc, _TCHAR* argv[])
{
    long int i;
    int count = 0;
    int w, z;
    for (i = 1000; i <= 999999; i++)
    {
        w = i / 1000;
        if (w < 10)
            w = w % 10;
        if (w >= 10 && w < 100)
            w = (w / 10) + (w % 10);
        if (w >= 100)
            w = (w / 100) + ((w % 100) / 10) + (w % 10);
        z = i % 1000;
        if (z < 10)
            z = z % 10;
        if (z >= 10 && z < 100)
            z = (z / 10) + (z % 10);
        if (z >= 100)
            z = (z / 100) + ((z % 100) / 10) + (z % 10);
        if (w == z)
            count++;
    }
    cout << count << endl << endl;
 
    system("pause");
    return 0;
}
0
543 / 486 / 104
Регистрация: 05.05.2014
Сообщений: 1,110
18.02.2016, 17:45 15
Цитата Сообщение от gogaloh Посмотреть сообщение
Вот моя попытка,
Не самая удачная, однако...

Добавлено через 3 минуты
Цитата Сообщение от makfak Посмотреть сообщение
50411
Нечетным количество счастливых билетов быть вообще не может
0
20 / 27 / 1
Регистрация: 14.03.2015
Сообщений: 792
18.02.2016, 17:46 16
8-BITOV, почту за честь созерцать элегантное решение.
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
31467 / 20514 / 7988
Регистрация: 22.10.2011
Сообщений: 35,647
Записей в блоге: 7
18.02.2016, 17:50 17
Цитата Сообщение от gogaloh Посмотреть сообщение
почту за честь созерцать элегантное решение
Элегантные решения были описаны в журнале для школьников "Квант" (с 1988 по 1990 годы, не помню точно, но поиск по их архиву выведет запросто на нужные номера). А все, что предлагается сейчас - это дуболомный перебор всех номеров и подсчет. Типа, "компьютер железный - пусть считает, мощности выросли, думать не нужно"
1
543 / 486 / 104
Регистрация: 05.05.2014
Сообщений: 1,110
18.02.2016, 17:56 18
Цитата Сообщение от gogaloh Посмотреть сообщение
почту за честь созерцать элегантное решение.
А чем не нравится решение в посте 9 ?
0
20 / 27 / 1
Регистрация: 14.03.2015
Сообщений: 792
18.02.2016, 19:26 19
8-BITOV, вот еще вариант, но выдает не верный ответ.
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
#include "stdafx.h"
#include <iostream>
using namespace std;
 
 
int _tmain(int argc, _TCHAR* argv[])
{
    int x = 0;
    int i, a, b, c;
    for (i = 0; i < 28; i++)
    {
        for (a = 0; a <= 9; a++)
        {
            for (b = 0; b <= 9; b++)
            {
                for (c = 0; c <= 9; c++)
                {
                    if (i ==( a + b + c))
                        x++;
                }
            }
        }
 
    }
    cout << x << endl << endl;
 
    system("pause");
    return 0;
}
Выдает ответ 1000.
0
543 / 486 / 104
Регистрация: 05.05.2014
Сообщений: 1,110
18.02.2016, 20:37 20
Цитата Сообщение от gogaloh Посмотреть сообщение
Выдает ответ 1000.
Как код напишешь - так он и считает...
0
18.02.2016, 20:37
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
18.02.2016, 20:37

Найти количество счастливых билетов
Здравствуйте! Такая задачка Мы вводим любое число, и программа должна посчитать количество...

Найти количество счастливых билетов
Как найти кол-во счастливых билетов????

Найти количество счастливых в тираже билетов
Найти количество счастливых в тираже билетов.

Найти количество “счастливых” автобусных билетов в рулоне
на Eclipse Найти количество “счастливых” автобусных билетов в рулоне (номером билета является...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru