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

Школа и дом Петра находятся на одной стороне улицы, надо узнать их номера.

23.05.2014, 11:34. Показов 1900. Ответов 1
Метки нет (Все метки)

Школа и дом Петра находятся на одной стороне улицы. Од*нажды по дороге в школу он стал складывать номера домов, мимо которых проходил на своей стороне улицы, начиная с номера своего дома. Когда сумма номеров оказалась равной 99, Петр пе*решел через поперечную улицу. После этого он начал заново скла*дывать номера домов, мимо которых проходил, и при сумме 117 перешел через еще одну поперечную улицу. Петр и в следующем квартале складывал номера домов. Сумма номеров домов третьего квартала оказалась равной 235, включая номер дома школы. Каков номер дома Петра? Каков номер дома школы?

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
23.05.2014, 11:34
Ответы с готовыми решениями:

Дома с нечетными номерами расположены на одной стороне улицы, с четными — на другой
Напишите пожалуйста код и сделайте форму данной задачи Известно число жителей, проживающих в...

Известно число жителей в каждом доме улицы. На какой стороне улицы проживает больше жителей
4. Известно число жителей, проживающих в каждом доме улицы. Нумерация домов проведена подряд. Дома...

Находятся ли обе точки на одной стороне прямой
Здравствуйте! Задача такова: Проверить, обе ли точки А(-5; 2) и B(2; 0) находятся на одной стороне...

Дом - Школа - Дом
Мальчик Вася каждый день ездит на метро. Утром он едет в школу, а вечером того же дня, обратно из...

1
Эксперт С++
3207 / 1734 / 435
Регистрация: 03.05.2010
Сообщений: 3,867
24.05.2014, 05:31 2
Лучший ответ Сообщение было отмечено как решение

Решение

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
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
/////////////////////////////////////////////////////////////////////////////////////////
// Школа и дом Петра находятся на одной стороне улицы. Од*нажды по дороге в школу он стал 
//складывать номера домов, мимо которых проходил на своей стороне улицы, начиная с номера 
//своего дома. Когда сумма номеров оказалась равной 
//  99, 
//Петр пе*решел через поперечную улицу. 
//После этого он начал заново скла*дывать номера домов, мимо которых проходил, и при сумме 
//  117 
//перешел через еще одну поперечную улицу. Петр и в следующем квартале складывал номера домов. 
//Сумма номеров домов третьего квартала оказалась равной 
//  235, 
//включая номер дома школы. 
//Каков номер дома Петра? Каков номер дома школы? 
/////////////////////////////////////////////////////////////////////////////////////////
#include <conio.h>
#include <iostream>
/////////////////////////////////////////////////////////////////////////////////////////
int const   BUILD_NUM_STEP  =   2;
/////////////////////////////////////////////////////////////////////////////////////////
bool  successfully_completed_block
    (
        int         first_num_in_block,
        int         block_sum,
        int     &   last_num_in_block
    )
{
    bool    bool_res;
    int     sum         =   0;
 
    for (
            int
            cur_num     =   first_num_in_block;
            sum         <=  block_sum;
            cur_num     +=  BUILD_NUM_STEP
        )
    {
        sum         +=  cur_num;
        bool_res    =   sum == block_sum;
 
        std::cout   <<  "#"
                    <<  cur_num
                    <<  '\t'
                    <<  "sum = "
                    <<  sum
                    <<  std::endl;
 
        if( bool_res )
        {
            std::cout           <<  std::endl;
            last_num_in_block   =   cur_num;
            break;
        }//if
    }//for
 
    return  bool_res;
}
/////////////////////////////////////////////////////////////////////////////////////////
bool  successfully_from_3_block_sums_get_Peter_and_school_building_numbers
    (
        int         block_sum_1,
        int         block_sum_2,
        int         block_sum_3,
        int     &   Peter_building_number,
        int     &   school_building_number
    )
{
    bool    bool_res    =   false;
 
    int     sum_1       =   0;
    int     sum_2       =   0;
    int     sum_3       =   0;
 
    for (
            Peter_building_number   =   1;
            Peter_building_number   <   block_sum_1; 
            ++Peter_building_number
        )
    {
        int     last_num_in_first_block     =   0;
        int     last_num_in_second_block    =   0;
 
        std::cout   <<  std::endl
                    <<  std::endl
                    <<  std::endl
                    <<  std::endl
                    <<  "Очередной заход Петра:"
                    <<  std::endl;
 
        bool_res    =       successfully_completed_block
                                (
                                    Peter_building_number,
                                    block_sum_1,
                                    last_num_in_first_block
                                )
 
                        &&  successfully_completed_block
                                (
                                    last_num_in_first_block + BUILD_NUM_STEP,
                                    block_sum_2,
                                    last_num_in_second_block
                                )
 
                        &&  successfully_completed_block
                                (
                                    last_num_in_second_block + BUILD_NUM_STEP,
                                    block_sum_3,
                                    school_building_number
                                );
 
        if( bool_res )
        {
            break;
        }
    }//for
 
    return  bool_res;
}
/////////////////////////////////////////////////////////////////////////////////////////
int  main()
{
    std::locale::global(std::locale(""));
 
    int     block_sum_1             =   99;
    int     block_sum_2             =   117;
    int     block_sum_3             =   235;
 
    int     Peter_building_number   =   0;
    int     school_building_number  =   0;
 
    if  (
            successfully_from_3_block_sums_get_Peter_and_school_building_numbers
                (
                    block_sum_1,
                    block_sum_2,
                    block_sum_3,
                    Peter_building_number,
                    school_building_number
                )
        )
    {
        std::cout   <<  "Петр живет в доме под номером\t\t"
                    <<  Peter_building_number
                    <<  std::endl
                    <<  "Школа находится в доме с номером\t"
                    <<  school_building_number
                    <<  std::endl;
    }
    else
    {
        std::cout   <<  "Решение не найдено."
                    <<  std::endl;
    }//else
 
    getch();
}
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
24.05.2014, 05:31

На какой стороне улицы проживает больше жителей?
Чем можете помогите пожайлуста. Известно число жителей, проживающих в каждом доме улицы.Нумерация...

На какой стороне улицы проживает больше жителей?
Известно число жителей, проживающих в каждом доме улицы. Нумерация домов проведена подряд. Дома с...

На какой стороне улицы проживает больше жителей
Всех приветствую!) Подскажите, как записать решение для следующей задачи: &quot;Известно число...

На какой стороне улицы проживает больше жителей?
Известно число жителей, проживающих в каждом доме улицы. Нумерация домов проведена подряд. Дома с...

На какой стороне улицы проживает больше жителей?
известно число жителей проживающих в каждом доме. Нумерация домов проведена подряд. Дома с...

Определить на какой стороне улицы проживает больше жителей
2. Известно число жителей, проживающих в каждом доме улицы. Нумерация домов проведена подряд. Дома...


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

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

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