М
Молодежь
К
Компьютеры-и-электроника
Д
Дом-и-сад
С
Стиль-и-уход-за-собой
П
Праздники-и-традиции
Т
Транспорт
П
Путешествия
С
Семейная-жизнь
Ф
Философия-и-религия
Б
Без категории
М
Мир-работы
Х
Хобби-и-рукоделие
И
Искусство-и-развлечения
В
Взаимоотношения
З
Здоровье
К
Кулинария-и-гостеприимство
Ф
Финансы-и-бизнес
П
Питомцы-и-животные
О
Образование
О
Образование-и-коммуникации
vladazavialova
vladazavialova
01.01.2023 13:08 •  Информатика

Составить программу,которая уменьшит первое число в 5 раз,если оно больше второго

👇
Открыть все ответы
Ответ:
avatar23455
avatar23455
01.01.2023
В задаче имеется "топорное решение" — посчитать напрямую. Получившееся число будет восьмизначным, что не так уж и страшно, если в голову не приходят другие решения.

Рассмотрим, однако, решение, которое позволит делать подобные задачи без прямого подсчёта. Для этого, прежде всего, переведём всё в степени тройки:

98328316+35+35+35−9−32−32==
9
8
+
3
5
−9 =
3
2
8
+
3
5

3
2
=
3
16
+
3
5

3
2

Как представляется число 3n в троичной системе счисления? Давайте подумаем, как мы переводим из десятичной системы в троичную? Сначала делим на 3, затем частное делим на 3, затем новое частное на 3 и т.п. Что получится в случае деления 3n на 3? Очевидно, что 3n-1. А если его поделить дальше на 3, то получится 3n-2. Если так сделать n раз, то в конце останется 30, то есть. Таким образом, это будет число 100..00, где количество нулей равно n.

То есть, например, 8-ая степени тройки в троичной системе представима в виде 1000000003. А 35 — это 1000003.

Вернёмся теперь к нашей сумме. Давайте сначала в столбик сложим 316 и 35 в троичной системе счисления.

100…000000016100000100…0⏟10100000 1
00

0000000

16
100000 1
00

0

10
100000

Теперь остаётся из этого вычесть 32. Для этого придётся "занять" разряд. Но принцип тут такой же, как и в обычной, десятичной системе счисления, только 0 будут превращаться не в 9, а в 2 (самую большую цифру в троичной системе счисления:

100…0⏞10100000−100100…0⏟10022200 1
00

0

10
100000 −100 1
00

0

10
022200

Таким образом, количество двоек в указанной сумме получилось равным 3.

ответ: 3 двойки в троичной записи.
4,4(70 оценок)
Ответ:
1)
#include <iostream>
#include <ctime>
#include <cstdlib>
using namespace std;

const int size = 10;

int main()
{
    srand (time(0));
    int a[size];
    int k1 = 0,k2 = 0;
    for (int i=0; i<size; i++)
    {
        a[i]=rand()%20-10;
        cout <<a[i] <' ';
        k1+=(a[i]>0 && a[i]%2) ? a[i]:0;
        k2+=(a[i]<0 && !(a[i]%2)) ? 1:0;
    }
    cout <<k1 <<end <<k2 <<endl;
    return 0;
}

2)
#include <iostream>
#include <ctime>
#include <cstdlib>
using namespace std;

const int size = 10;

int main()
{
    srand (time(0));
    int a[size];
    int k1 = 0,k2 = 0;
    for (int i=0; i<size; i++)
    {
        a[i]=rand()%20-10;
        cout <<a[i] <' ';
        k1+=(a[i]<0 && !(i%2)) ? 1:0;
        k2+=(a[i]>0 && !(a[i]%2) && i%2) ? a[i]:0;
    }
    cout <<k2 <<end <<k2 <<endl;
    return 0;
}
4,6(95 оценок)
Это интересно:
Новые ответы от MOGZ: Информатика
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ