Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 13.04.2016, 00:56   #1
VladimirAvakov
Пользователь
 
Регистрация: 13.03.2013
Сообщений: 33
По умолчанию Задачка. Диапазоны

Всем привет. Помогите пожалуйста с решением. Нужен код на C++.

Сама задача: Автобусные билеты в рулоне пронумерованы от 000001 до 999999. Составить программу, выводящую на экран количество и номера (в несколько столбиков) всех счастливых билетов в некотором диапазоне, организовав запрос начального и конечного номера билета диапазона.

Примечание: Счастливым считать тот билет, у которого сумма первых трех цифр, равна сумме трех последних.
VladimirAvakov вне форума Ответить с цитированием
Старый 14.04.2016, 00:35   #2
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

на этот раз в традиционные 45 строк кода не уложился...

284955.jpg
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Старый 14.04.2016, 00:54   #3
Croessmah
Вредный кошак
Участник клуба
 
Аватар для Croessmah
 
Регистрация: 14.10.2012
Сообщений: 1,159
По умолчанию

Со столбиками и всем остальным - сами
Код:
//g++  4.9.3

#include <iostream>
#include <iomanip>
#include <stdexcept>

int sum_3(int num)
{
    return num%10 + num/100 + (num/10)%10;
}


bool is_happy_6(int num)
{
    return sum_3(num/1000) == sum_3(num%1000);
}


void output_happy_in_range(int nmin, int nmax)
{
    if(nmin<0 || nmax<0 || nmin>999999 || nmax>999999)
        throw std::invalid_argument("Are you fool?");
    if(nmax<nmin)
        std::swap(nmin, nmax);
    for(; nmin!=nmax; ++nmin)
        if(is_happy_6(nmin))
            std::cout << std::setw(6) << std::setfill('0') << nmin << " ";
}


int main()
{
    int nmin = 0;
    int nmax = 0;
    std::cin >> nmin >> nmax;
    output_happy_in_range(nmin, nmax);
}
http://rextester.com/XLVP20242
Croessmah вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
диапазоны СУММЕСЛИ() Khalid Паскаль, Turbo Pascal, PascalABC.NET 0 12.03.2015 10:38
Диапазоны в VBA Outed Microsoft Office Excel 4 17.02.2015 08:38
Разбить на диапазоны! Seregakz Общие вопросы Delphi 3 21.09.2014 16:49
Динамические диапазоны LaryMusa Microsoft Office Excel 8 05.07.2010 21:20
Суммесли и диапазоны на листах _ДЭН_78 Microsoft Office Excel 1 18.09.2007 15:38