Форум программистов, компьютерный форум CyberForum.ru

Дирректива define и прочее - C++

Восстановить пароль Регистрация
 
 
Рейтинг: Рейтинг темы: голосов - 23, средняя оценка - 4.61
Bloodykeeper
This party getting crazy!
 Аватар для Bloodykeeper
78 / 74 / 1
Регистрация: 22.09.2009
Сообщений: 427
11.02.2010, 16:51     Дирректива define и прочее #1
Помогите пожалуйста решить задание, никогда раньше с такими не сталкивался! =(

1) Даны целые числа x, у и вещественное число z. Используя директиву #define для нахождения наибольшего из чисел, вычислить
S=max(x+y+z, xyz)+3max(xy2, z2).

2)Назовём шестизначный автобусный билет удачным, если сумма его цифр делится на 7. Могут ли два билета подряд быть удачными?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.02.2010, 16:51     Дирректива define и прочее
Посмотрите здесь:

Дирректива процессора C++
C++ Указатель на массив char и прочее
C++ #define
С++ VLA и прочее... C++
define C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Genius Ignat
1233 / 771 / 44
Регистрация: 16.09.2009
Сообщений: 2,014
12.02.2010, 20:31     Дирректива define и прочее #21
два билета подряд
Это как объясните?
Может я что то не до понимаю.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
insideone
Модератор
Автор FAQ
 Аватар для insideone
3622 / 900 / 47
Регистрация: 10.01.2010
Сообщений: 2,429
12.02.2010, 20:32     Дирректива define и прочее #22
Типа есть билет x и он оказался удачным. Может ли x++ быть удачным?
Genius Ignat
1233 / 771 / 44
Регистрация: 16.09.2009
Сообщений: 2,014
12.02.2010, 20:34     Дирректива define и прочее #23
Тьфу...
Хотя б выражались правильнее.
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9373 / 5423 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
12.02.2010, 20:45     Дирректива define и прочее #24
Тупым перебором не нашлось таких билетов...
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <iostream>
 
int main(){
    const int start_num = 8;
    const int finish_num = 1000000;
    const int divider = 7;
    
    for ( int i = start_num; i < finish_num; ++i )
        if ( !(i % divider ) && !((i - 1) % divider) )
            std::cout << (i - 1) << " and " << i << std::endl;
    
    return 0;
}
insideone
Модератор
Автор FAQ
 Аватар для insideone
3622 / 900 / 47
Регистрация: 10.01.2010
Сообщений: 2,429
12.02.2010, 21:02     Дирректива define и прочее #25
2 easybudda что то я не разобрался вы разве сумму цифр считаете. Вы помоему сам номер билета на 7 делите

Сумма цифр будет на 1 больше или на 8 меньше, вроде такое число не будет делиться на 7
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9373 / 5423 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
12.02.2010, 21:05     Дирректива define и прочее #26
insideone, ага, погорячился... Вот много раз говорил себе - читай внимательнее задания... Домой приеду, не лень будет - переделаю...
Evg
Эксперт С++Автор FAQ
 Аватар для Evg
16827 / 5248 / 321
Регистрация: 30.03.2009
Сообщений: 14,132
Записей в блоге: 26
12.02.2010, 23:44     Дирректива define и прочее #27
Bloodykeeper, после строки со scanf'ом воткни

C
1
printf("x=%d, y=%d, z=%f", x, y, z);
insideone
Модератор
Автор FAQ
 Аватар для insideone
3622 / 900 / 47
Регистрация: 10.01.2010
Сообщений: 2,429
13.02.2010, 01:36     Дирректива define и прочее #28
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
int main(){
    bool Luck = false;
    int LuckCount = 0;
    for (int b = 0; b < 1000000; ++b)
    {
        char Buf[6] = {0};
        char One[2] = {0, 0};
        itoa(b, &Buf[0], 10);
        unsigned short Summ = 0;
        for (int i = 0; i < 6; ++i)
        {
            One[0] = Buf[i];
            Summ += atoi(&One[0]);
        }
        if ( (Summ % 7) == 0 )
        {
            if ( Luck )
            {
                LuckCount++;
                cout << "Билет " << (b-1) << " и билет " << b << " счастливые!" << endl;
                Luck = false;
            }
            else
            {
                Luck = true;
            }
        }
        else
        {
            Luck = false;
        }
    }
    if ( LuckCount == 0 )
        cout << "Таких билетов нет :(";
 
return 0;
}
Попробовал решить брутфорсом, вроде код верный. Не знаю уж... выдает что
Билет 69999 и билет 70000 счастливые!
Билет 159999 и билет 160000 счастливые!
Билет 249999 и билет 250000 счастливые!
Билет 339999 и билет 340000 счастливые!
Билет 429999 и билет 430000 счастливые!
Билет 519999 и билет 520000 счастливые!
Билет 589999 и билет 590000 счастливые!
Билет 609999 и билет 610000 счастливые!
Билет 679999 и билет 680000 счастливые!
Билет 769999 и билет 770000 счастливые!
Билет 859999 и билет 860000 счастливые!
Билет 949999 и билет 950000 счастливые!
Так?
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9373 / 5423 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
13.02.2010, 01:45     Дирректива define и прочее #29
вроде исправился...
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <stdio.h>
 
long digits_sum(long number){
    long summ = 0;
    
    if ( number > 0 ) {
        do {
            summ += number % 10;
        } while ( number /= 10 );
    }
    
    return (summ);
}
 
int main(void){
    long i;
    
    for ( i = 7; i < 999999; ++i )
        if ( !(digits_sum(i) % 7) && !(digits_sum(i+1) % 7) )
            printf("%06ld %06ld\n", i, i+1);
    
    return 0;
}
Добавлено через 1 минуту
insideone, ага, у меня то же получилось...
insideone
Модератор
Автор FAQ
 Аватар для insideone
3622 / 900 / 47
Регистрация: 10.01.2010
Сообщений: 2,429
13.02.2010, 01:48     Дирректива define и прочее #30
2 easybudda Двойная проверка это сила
easybudda
13.02.2010, 01:53
  #31

Не по теме:

insideone, "Мало ли, у кого где что стоит, главное - чтобы работало!" (с) В. С. Черномырдин

insideone
13.02.2010, 01:57
  #32

Не по теме:

Топикстартер будет счастлив что все везде стоит

easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9373 / 5423 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
13.02.2010, 01:59     Дирректива define и прочее #33
insideone, ага, подумав убрал это "усовершенствование". Мало ли, вдруг 3 подряд счастливых окажутся...
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.02.2010, 02:03     Дирректива define и прочее
Еще ссылки по теме:

Скремблирование и прочее C++
C++ c++11 и $define
C++ Рекурентная формула и прочее

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

Или воспользуйтесь поиском по форуму:
insideone
Модератор
Автор FAQ
 Аватар для insideone
3622 / 900 / 47
Регистрация: 10.01.2010
Сообщений: 2,429
13.02.2010, 02:03     Дирректива define и прочее #34
Чтобы осуществить i+=2 можно было бы сохранять флаг о предыдущем результате в виде true\false а в условиее добавить (Flag && ...) || ( ... && ... ) но это учебная программа а не драйвера
Yandex
Объявления
13.02.2010, 02:03     Дирректива define и прочее
Ответ Создать тему
Опции темы

Текущее время: 09:11. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru