С Новым годом! Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 5.00/11: Рейтинг темы: голосов - 11, средняя оценка - 5.00
3 / 3 / 1
Регистрация: 23.09.2019
Сообщений: 107
1

Ваш день рождения очень счастливый, просто счастливый или обычный?

21.02.2020, 16:38. Показов 2082. Ответов 24
Метки с++ (Все метки)

Author24 — интернет-сервис помощи студентам
Введите свой год, месяц и день рождения. Ваш день
рождения очень счастливый, просто счастливый или обычный?
Очень счастливый – если все остатки от деления на 7 сумм цифр
года, месяца и дня совпадают. Просто счастливый – если совпадают два
любых остатка. Обычный - если совпадений нет.
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
21.02.2020, 16:38
Ответы с готовыми решениями:

Определить очень счастливый день рождения или обычный
Введите свой год, месяц и день рождения, Ваш день рождения очень счастливый, просто счастливый или...

Проверить, верно ли, что или предыдущий или следующий билет счастливый
#include <iostream> using namespace std; const int size = 6; int main() { freopen("INPUT.TXT",...

Счастливый билет
Всем привет помогите с решением задачи.Вводится шестизначное число .Определить является ли билет с...

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

24
729 / 410 / 78
Регистрация: 24.09.2017
Сообщений: 2,388
Записей в блоге: 17
21.02.2020, 19:17 2
Цитата Сообщение от fYm13 Посмотреть сообщение
Очень счастливый – если все остатки от деления на 7 сумм цифр
года, месяца и дня совпадают.
ДД+ММ+ГГ - сумма цифр, т.е. сумма одна. Или надо отдельно суммировать цифры дня, месяца и года?
0
Диссидент
Эксперт C
27708 / 17326 / 3810
Регистрация: 24.12.2010
Сообщений: 38,979
21.02.2020, 19:31 3
Цитата Сообщение от Argus19 Посмотреть сообщение
Или надо отдельно суммировать цифры дня, месяца и года?
Судя по условию, отдельно.
Меня смущает другое. Почему год двузначный? Кто не берется в расчет, кого лишают возможности быть счастливым?
0
729 / 410 / 78
Регистрация: 24.09.2017
Сообщений: 2,388
Записей в блоге: 17
21.02.2020, 19:40 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
27
28
29
30
31
32
33
34
35
36
#include <iostream>
using namespace std;        //Использовать пространство имён std::
//Взято и переработано в функцию здесь:
//https://www.cyberforum.ru/cpp-beginners/thread40759.html
unsigned short summa (unsigned short n)
{
//Объявляем локальную переменные функции summa
   unsigned short sum = 0;      //Для результата суммирования цифр числа
    while (n!=0)
    {
        sum += n%10;    //Прибавить к переменной sum остаток от деления n на 10.
        n /= 10;
    }
    return sum;
}
int main()
 {
     setlocale(LC_ALL, "Rus");  //Устанавливаем русский шрифт
//Объявляем переменные
    unsigned short day, mon, year;      //Для ввода чисел ДР
    unsigned short sday, smon, syear;       //Для сумм чисел
    cout << "День: ";
    cin >> day;
    cout << "Месяц: ";
    cin >> mon;
    cout << "Год: ";
    cin >> year;
//Получаем суммы цифр
   sday = summa(day);
   smon = summa(mon);
   syear = summa(year);
// Проверяем
   cout << sday << "  " << smon << "  " << syear <<endl;
system ("pause");
    return 0;
 }
Работает
1
Диссидент
Эксперт C
27708 / 17326 / 3810
Регистрация: 24.12.2010
Сообщений: 38,979
21.02.2020, 19:50 5
Цитата Сообщение от Argus19 Посмотреть сообщение
Я начну, пожалуй:
Да, остатки посчитаны. Теперь надо бы их как-то между собой сравнить... Перебирать все варианты - в лом как-то... Нельзя ли через массив как-нибудь изловчиться?
0
Параллельный Кот
1905 / 827 / 350
Регистрация: 25.03.2016
Сообщений: 2,045
21.02.2020, 19:54 6
Цитата Сообщение от Байт Посмотреть сообщение
Перебирать все варианты - в лом как-то...
Их всего 3
0
729 / 410 / 78
Регистрация: 24.09.2017
Сообщений: 2,388
Записей в блоге: 17
21.02.2020, 19:54 7
Цитата Сообщение от Байт Посмотреть сообщение
Да, остатки посчитаны.
Неа. Только суммы. Надо их поделить на 7, а уже потом.....

Цитата Сообщение от Байт Посмотреть сообщение
Нельзя ли через массив как-нибудь изловчиться?
Овчинка будет стоить выделки?
Может ТС хоть какое-нибудь решение накидает
0
Диссидент
Эксперт C
27708 / 17326 / 3810
Регистрация: 24.12.2010
Сообщений: 38,979
21.02.2020, 20:02 8
О! Придумал! Составляем массив из разностей остатков.
Если их сумма ==0 - Super Luck!
Else if произведение == 0 - Simple Luck
Else - No Luck
Как говорят у нас в малороссии - Нехай гаже, та инче.
Цитата Сообщение от valen10 Посмотреть сообщение
Их всего 3
Цитата Сообщение от Argus19 Посмотреть сообщение
Овчинка будет стоить выделки?
Вот путь ТС и считает...
1
729 / 410 / 78
Регистрация: 24.09.2017
Сообщений: 2,388
Записей в блоге: 17
21.02.2020, 20:26 9
Цитата Сообщение от Байт Посмотреть сообщение
Вот путь ТС и считает...
Он куда-то пропал.
правомерна ли такая запись?
C++
1
if (a == b == c)
0
Диссидент
Эксперт C
27708 / 17326 / 3810
Регистрация: 24.12.2010
Сообщений: 38,979
21.02.2020, 20:44 10
Кстати, по поводу овчинки. Тут пришла в голову любопытная идейка. А может и дурная...
Вот есть массив. Можно составить такое число
Код
NumChar = 0;
for(i=0,k=0; i<n-1; i++)
  for(j=i+1; j<n; j++, k++)
    NumChar += 2^k * (a[i]!=a[j]);
Это число, по идее, должен полностью рассказать о составе (в смысле - сколько одинаковых и групповая разбивка) исходного массива.
Даже более того, оно избыточно. Не любое число может стать NumChar. Так, для n=3 такими числами могут быть 0,3,5,6,7
Ничего о комбинаторных свойствах этого числа сказать не могу. Может, там и нет никаких свойств. Но для досужего ума - небольшое развлеченье.
ЗЫ. Хочу заметить, что в слове "досужий" для меня нет никакой отрицательной окраски. Это просто - имеющий досуг, свободное время. А ведь известно, что Лень и Досуг - два главных двигателя прогресса!
0
Параллельный Кот
1905 / 827 / 350
Регистрация: 25.03.2016
Сообщений: 2,045
21.02.2020, 20:49 11
Цитата Сообщение от Argus19 Посмотреть сообщение
правомерна ли такая запись?
Смотря с какой точки зрения. Для ЯП, полагаю, вполне. Из a == b получим false или true, которые преобразуются в 0 или 1 соответственно, и с этим значением сравним c. Но Вы не этого хотели?
0
Диссидент
Эксперт C
27708 / 17326 / 3810
Регистрация: 24.12.2010
Сообщений: 38,979
21.02.2020, 20:49 12
Цитата Сообщение от Argus19 Посмотреть сообщение
правомерна ли такая запись?
Вроде бы, синтаксически она правильна. А семантически означает
C++
1
if (a== (b==c))
То есть. Если b==c скобка = true = 1, иначе = false = 0
Далее число a сравнивается с 1 или 0
0
729 / 410 / 78
Регистрация: 24.09.2017
Сообщений: 2,388
Записей в блоге: 17
21.02.2020, 21:02 13
Цитата Сообщение от Байт Посмотреть сообщение
А ведь известно, что Лень и Досуг - два главных двигателя прогресса!
"Полностью согласен с предыдущим оратором!"
У меня сейчас включена VS2010 c вышеприведённым исходником. Могу попробовать.

Добавлено через 11 минут
Цитата Сообщение от valen10 Посмотреть сообщение
Но Вы не этого хотели?
Проверить равенство остатков.
0
Диссидент
Эксперт C
27708 / 17326 / 3810
Регистрация: 24.12.2010
Сообщений: 38,979
21.02.2020, 21:11 14
Цитата Сообщение от Argus19 Посмотреть сообщение
Проверить равенство остатков.
Не, так не выйдет. Придется
C++
1
if (a == b && b== c)
Добавлено через 1 минуту

Не по теме:

Цитата Сообщение от Argus19 Посмотреть сообщение
Он куда-то пропал.
Да и без него хорошо!

0
729 / 410 / 78
Регистрация: 24.09.2017
Сообщений: 2,388
Записей в блоге: 17
21.02.2020, 21:44 15
Цитата Сообщение от Байт Посмотреть сообщение
Почему год двузначный?
Догадался..... Если год четырёхзначный, то фигушки сумма его цифр совпадёт с суммой цифр дня и месяца, за исключением лиц, родившихся не позднее 12 лет от Рождества Христова.
0
199 / 155 / 45
Регистрация: 11.11.2019
Сообщений: 348
21.02.2020, 21:47 16
Цитата Сообщение от Argus19 Посмотреть сообщение
то фигушки сумма его цифр совпадёт с суммой цифр дня и месяца
Ну совпасть должна не сумма цифр, а остаток от деления этой суммы на 7
0
729 / 410 / 78
Регистрация: 24.09.2017
Сообщений: 2,388
Записей в блоге: 17
21.02.2020, 21:52 17
Лучший ответ Сообщение было отмечено fYm13 как решение

Решение

Цитата Сообщение от fao Посмотреть сообщение
совпасть должна не сумма цифр, а остаток от деления этой суммы на 7
Согласен.
Вот решение, правда с лишним кодом. Проверял решение из другого топа. Лень удалять. Особо не помешает:
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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
#include <ctime>
#include <iostream>
using namespace std;        //Использовать пространство имён std::
//Взято и переработано в функцию здесь:
//https://www.cyberforum.ru/cpp-beginners/thread40759.html
unsigned short summa (unsigned short n)
{
//Объявляем локальную переменные функции summa
   unsigned short sum = 0;      //Для результата суммирования цифр числа
    while (n!=0)
    {
        sum += n%10;    //Прибавить к переменной sum остаток от деления n на 10.
        n /= 10;
    }
    return sum;
}
int main()
 {
     setlocale(LC_ALL, "Rus");  //Устанавливаем русский шрифт
 
 time_t result = time(nullptr);
    cout << asctime(localtime(&result))
              << result << " seconds since the Epoch\n";
 
//Объявляем переменные
    unsigned short day, mon, year;      //Для ввода чисел ДР
    unsigned short sday, smon, syear;       //Для сумм чисел
    cout << "День: ";
    cin >> day;
    cout << "Месяц: ";
    cin >> mon;
    cout << "Год: ";
    cin >> year;
//Получаем суммы цифр
   sday = summa(day);
   smon = summa(mon);
   syear = summa(year);
// Проверяем
   cout << sday << "  " << smon << "  " << syear <<endl;
//Раз числа ДР нам больше не нужны, используем их для хранения остатков
   day = sday % 7;
   mon = smon % 7;
   year = syear % 7;
// Проверяем
   cout << day << "  " << mon << "  " << year <<endl;
//Сравниваем
   if (day == mon && mon == year)
       cout <<"Ваш день рождения очень счастливый!\n";
   else if (day == mon ||  mon == year || day == year)
       cout <<"Ваш день рождения счастливый.\n";
   else
       cout <<"Ваш день рождения обычный.\n";
system ("pause");
    return 0;
 }
1
199 / 155 / 45
Регистрация: 11.11.2019
Сообщений: 348
21.02.2020, 22:06 18
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
#include <set>
using namespace std;
 
int main()
{
    const int ddmmyy[] = { 22, 04, 70 };
    set<int> s;
 
    for (int d : ddmmyy)
    {       
        s.insert((d / 10 + d % 10) % 7);        
    }   
    switch (s.size())
    {
    case 1: cout << "Super Happy"; break;
    case 2: cout << "Happy"; break;
    default: cout << "Simple";
    }
}
1
Параллельный Кот
1905 / 827 / 350
Регистрация: 25.03.2016
Сообщений: 2,045
21.02.2020, 22:46 19
Пусть будет еще такой вариант.
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
#include <iostream>
#include <regex>
#include <set>
#include <string>
 
using namespace std;
 
unsigned f(unsigned long x) {
    return ((x < 10) ? x : (x % 10 + f(x / 10))) % 7;
}
 
int main() {
    cout << "Введите дату в формате dd.mm.yyyy: ";
    string input;
    getline(cin, input);
 
    smatch matches;
    if (regex_match(input, matches, regex("([0-2]\\d|3[0-1])\\.(0\\d|1[0-2])\\.(\\d{4})"))) {
        const set<unsigned> s{f(stoul(matches[1])), f(stoul(matches[2])), f(stoul(matches[3]))};
        cout << vector<string>{"Super Luck!", "Simple Luck", "No Luck"}[s.size() - 1] << endl;
    }
    else {
        cerr << "Введена неправильная дата, попробуйте еще раз" << endl;
    }
 
    return 0;
}
1
Диссидент
Эксперт C
27708 / 17326 / 3810
Регистрация: 24.12.2010
Сообщений: 38,979
22.02.2020, 00:01 20
Цитата Сообщение от Байт Посмотреть сообщение
пришла в голову любопытная идейка.
И вот никак уходит. Топчется...
Дело в том, что любое отношение на множестве n элементов можно описать последовательностью из n2 нулей и единиц. Рефлексивное и симметричное отношение (что я и пытался сделать), ему нужно чуток поменьше - n(n-1)/2 . Но в данном случае нас интересуют отношения эквивалентности, то есть еще и обладающие транзитивностью. А их совсем "чуть-чуть" - 2n-1 + 1
А вот отношений порядка, их n! (это я не кричу, это - факториал)
Мысля о том, что каждому отношению такого рода можно поставить в соответствие (взаимно-однозначно) число. Может быть даже и большое, не в этом суть. Можно перенумеровать. Но нумерация должна быть зффективной. В том смысле,
что по номеру за конечное (или не очень большое) количество шагов можно восстановить исходную конфигурацию. И это не всегда тривиальная задача.
Господа! Надеюсь, вы меня простите, что я ушел чуток "не в ту степь". Не знаю, насколько эти проблемы имеют отношение к программированию Возможно, небольшое. То есть к элементарному кодингу - вообще никакого. Но к алгоритмам, которые имеют очень даже тесную связь с нашей работой, отношение есть.
А я, с вашего позволения, помещу ссылочку на эту тему в мою любимую коллекцию
В защиту Оффтопа
0
22.02.2020, 00:01
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
22.02.2020, 00:01
Помогаю со студенческими работами здесь

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

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

Счастливый билет!
билет с шестизначным номером считается счастливым если сумма трех старших цифр совпадает с суммой...

Счастливый билет
Ув. программисты, помогите пожалуйста несчастному студенту решить задачу. (о вознаграждении...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Как настроить CI/CD с Azure DevOps
InfoMaster 15.01.2025
CI/ CD, или непрерывная интеграция и непрерывное развертывание, представляет собой современный подход к разработке программного обеспечения, который позволяет автоматизировать и оптимизировать процесс. . .
Как настроить CI/CD с помощью Jenkins
InfoMaster 15.01.2025
Введение в CI/ CD и Jenkins В современной разработке программного обеспечения непрерывная интеграция (CI) и непрерывная доставка (CD) стали неотъемлемыми элементами процесса создания качественных. . .
Как написать микросервис на Go/Golang с Kafka и GitHub CI/CD
InfoMaster 14.01.2025
Определение микросервиса, преимущества использования Go/ Golang Микросервис – это архитектурный подход к разработке программного обеспечения, при котором приложение состоит из небольших, независимо. . .
Как написать микросервис с нуля на C# с RabbitMQ, CQRS и CI/CD
InfoMaster 14.01.2025
В современном мире разработки программного обеспечения микросервисная архитектура стала стандартом де-факто для создания масштабируемых и гибких приложений. Этот архитектурный подход предполагает. . .
Как создать интернет-магазин на PHP и JavaScript
InfoMaster 14.01.2025
В современном мире электронная коммерция стала неотъемлемой частью бизнеса. Создание собственного интернет-магазина открывает широкие возможности для предпринимателей, позволяя достичь большей. . .
Как написать Тетрис на Ассемблере
InfoMaster 14.01.2025
Тетрис – одна из самых узнаваемых и популярных компьютерных игр, созданная в 1984 году советским программистом Алексеем Пажитновым. За прошедшие десятилетия она завоевала симпатии миллионы людей по. . .
Как создать игру "Танчики" на Unity3d и C#
InfoMaster 14.01.2025
Разработка игр – это увлекательный процесс, сочетающий в себе творчество и технические навыки. В этой статье мы рассмотрим создание классической игры "Танчики" с использованием Unity3D и языка. . .
Организую платный онлайн микро-курс по доработке Android-клиента Telegram
_Ivana 14.01.2025
Официальная версия и распространенные форки не полностью устраивают? Сделай свою кастомную версию клиента! 4 занятия по 2 часа (2 недели пн, ср 19:00-21:00 по Москве). Первое вводное занятие. . .
Как создать приложение для фитнеса для iOS/iPhone на Kotlin
InfoMaster 14.01.2025
Создание собственного фитнес-приложения — это не только захватывающий, но и полезный процесс, ведь оно может стать вашим верным помощником на пути к здоровому и активному образу жизни. В современных. . .
Как создать приложение магазина для iOS/iPhone на Swift
InfoMaster 14.01.2025
Введение в разработку iOS-приложений Разработка приложений для iPhone и других устройств на базе iOS открывает огромные возможности для создания инновационных мобильных решений. В данной статье мы. . .
Это работает. Скорость асинхронной логики велика. Вопрос видимо останется в стабильности. Плата - огонь!
Hrethgir 13.01.2025
По прошлому проекту в Logisim Evolution https:/ / www. cyberforum. ru/ blogs/ 223907/ blog8781. html прилагаю файл архива проекта в Gowin Eda. Восьмибитный счётчик из сумматора+ генератор сигнала. . .
UserScript для подсветки кнопок языков программировани­­­­я в зависимости от текущего раздела
volvo 13.01.2025
В результате работы этого скрипта подсвечиваются нужные кнопки не только в форме быстрого ответа, но и при редактировании сообщения: / / ==UserScript== / / @name CF_DefaultLangSelect / / . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru