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

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

16.01.2015, 17:36. Просмотров 417. Ответов 3
Метки нет (Все метки)

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
#include <iostream>
 
using namespace std;
 
int main()
{
    int a,b;
    int gl;
 
    for (int x=60;x<100;x++){
            a=0;
            b=0;
            gl=x;
 
    while (x>0)
    {
        a++;
        if (b<(x % 8))
            b=x%8;
        x=x/8;
    }
    if (a==3 && b==2)
    {
        cout << x;
        exit(0);
    }
}
 
    cout << a << " " << b;
    return 0;
 
}
нужно, чтобы x переходило от 60 до 100, но x становится равным 1 после 60 и все. В ответ должно быть выведено, по идее, 66. Как нужно исправить программу, чтобы это недоразумение заработало?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
16.01.2015, 17:36
Ответы с готовыми решениями:

Чему равны переменные после выполнения программы?
void main() { int x=1,y=2,z=3; clrscr(); x=~x; ...

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

Чему будут равны элементы массива после выполнения кода?
В программе описан одномерный целочисленный массив A с индексами от 0 до 10. Ниже представлен...

Определить, сколько элементов массива A будут равны 1 после выполнения кода
20) Элементы двухмерного массива A размером 44 первоначально были равны 0. Затем они изменяются с...

3
Эксперт PHP
2850 / 2437 / 1142
Регистрация: 14.05.2014
Сообщений: 6,898
Записей в блоге: 1
16.01.2015, 17:51 2
Цитата Сообщение от maksvolf96 Посмотреть сообщение
C++
1
2
3
4
5
6
7
    while (x>0)
    {
        a++;
        if (b<(x % 8))
            b=x%8;
        x=x/8;
    }
Вот здесь х прогоняется дважды и превращается в 0, после чего цикл while завершается. После этого он инкрементируется здесь
Цитата Сообщение от maksvolf96 Посмотреть сообщение
C++
1
for (int x=60;x<100;x++)
и превращается в единицу. А вот если бы Вы написали, что должна делать программа, то ответ был бы более развернутым и полезным.

Добавлено через 2 минуты
По моим предположениям вместо
C++
1
2
3
4
5
6
7
    while (x>0)
    {
        a++;
        if (b<(x % 8))
            b=x%8;
        x=x/8;
    }
должно быть
C++
1
2
3
4
5
6
7
    while (gl>0)
    {
        a++;
        if (b<(gl % 8))
            b=gl%8;
        gl=gl/8;
}
1
3 / 3 / 2
Регистрация: 18.05.2014
Сообщений: 203
16.01.2015, 18:32  [ТС] 3
Задание из ЕГЭ: найти такое минимально x, чтобы после выполнения кода
C++
1
2
3
4
5
6
7
8
9
int a=0;
int b;
while (x>0)
    {
        a++;
        if (b<(x % 8))
            b=x%8;
        x=x/8;
    }
a было равно 3 b было равно 2
0
267 / 170 / 40
Регистрация: 25.08.2014
Сообщений: 1,087
Записей в блоге: 1
16.01.2015, 18:49 4
b не инициализировано, чё там проверяется-то? А если b больше 7, то что делать?
Я так понял что while прогонится максимум 11 раз, найдётся тройка бит в X дающая максимум.
Суть решения: X должно иметь как минимум 7 разряд выставленный в 1. Для того чтобы b было равно 2, надо чтобы 7 8 9 разряды образовывали последовательность 010.
X - 010 000 000b, 128d
Тада.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
16.01.2015, 18:49

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

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

Как сделать чтобы консоль не выключалась после выполнения кода
Как сделать так,чтобы после выполнения кода,консоль повторяла его заново

Разбить мн-во на 2 подмн-ва, чтобы суммы эл-тов были равны...
Разбить числовое множество на два подмножества таким образом, чтобы суммы элементов двух...

Какой блок поставить, чтобы степени были равны
Даны две передаточные функции, с переменной z^(-1) и z^(-2). Старшие степени знаменателя и...


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

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

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