powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / объясните как работает программа.
5 сообщений из 5, страница 1 из 1
объясните как работает программа.
    #39112341
fr0st1k123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
A в степени K методом сложения , объясните ПОДРОБНО как работает эта программа, за что отвечают m и s ?
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
#include "stdafx.h"
#include "iostream"
using namespace std;
 
 
int main()
{
    int a, k, m, s;
    cin >> a >> k;
    s = a;
    for (int j = 1; j < k; j++)
    {m = s;
    for (int j = 1; j < a; j++)
    
        s += m;
    }
    cout << s;
 
    return 0;
}
...
Рейтинг: 0 / 0
объясните как работает программа.
    #39112358
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Все просто: алгоритм сводит возведение в степень к умножению, а умножение к сложению. Плюс немного оптимизации чтоб не считать повторно уже посчитанное.
например
Код: plaintext
1.
3^3 = 3*3*3 = (3 + 3 + 3)*3 = (3 + 3 + 3) + (3 + 3 + 3) + (3 + 3 + 3)


Сделай вывод слагаемых и посмотри.
...
Рейтинг: 0 / 0
объясните как работает программа.
    #39112482
alexy_black
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
яркий пример плохих названий переменных ))))

переменные можно переименовать так a=>base; k=>exponent; s=>total_sum; m=>level_sum например.
первую j наверное в level_number . второую можно в sublevel_number
тогда понятно будет :)

лучше выделить в две функции - возведение в степень разложение и умножение разложением.
тогда base и exponent параметры функции разложения степени.
...
Рейтинг: 0 / 0
объясните как работает программа.
    #39112657
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alexy_black, есть и контр-примеры. Писал что-то в универе. Гиперкомплексные числа на сях.
Числа вида (i,j,k,l). Операции с ними. Умножение. Деление. Матричные операции. Формулы -
достаточно компактны. А если следовать венгерским нотациям или добавлять префиксы
или суффиксы ради каких-то стандартов - то формула становится плохочитабельной безсмыслицей.

А циклы i, j, k я с 15 лет на бейсике херячил в 1 латинскую букву.
...
Рейтинг: 0 / 0
объясните как работает программа.
    #39112711
alexy_black
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,

стандарт ради стандарта - зло, имхо. вот вроде венгерская нотация для си - там без поллитра не разберешь, можно ли выполнить преобразование или нельзя. в современных иде можно посмотреть объявление, а вот в виме например, труднова-то (ну или может у меня коряво настроен). на си++ вроде не особо уже актуальна.

но вот этот пример, учитывая карявые отступы, мне сразу прочитать не удалось. хотя бы с другими именами переменных было бы легче :) да вот хотя бы если циклы не трогать, а переименовать, как я указал, только a в base а k в exponent - сразу было бы понятно :)
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / объясните как работает программа.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]