Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
0 / 0 / 0
Регистрация: 25.06.2019
Сообщений: 1

Оптимизация алгоритма

25.06.2019, 21:57. Показов 991. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Если ввести очень большое значение желаемой суммы вклада примерно 10 в 9 степени , то работа алгоритма затягивается, как можно оптимизировать?

Вклад в банке составляет x рублей. Ежегодно он увеличивается на p процентов, после чего дробная часть копеек отбрасывается. Определите, через сколько лет вклад составит не менее y рублей.
Выражение «дробная часть копеек отбрасывается» означает, что если у вас оказалось 123.4567 рублей, т. е. 123 рубля и 45.67 копеек, то после округления у вас получится 123 рубля и 45 копеек, т.е. 123.45 рублей.
Программа получает на вход три натуральных числа: x, p, y и должна вывести одно целое число.

C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
int main() {
    int A,B,P;
    cin >> A>>B>>P;
    int i = 0;
    while (A <= B) {
        A =(A + ((A * P)/100));
        A = int(100*A)/100;
        i++;
    }
    cout << i;
    return 0;
}
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
25.06.2019, 21:57
Ответы с готовыми решениями:

Оптимизация алгоритма
Всем привет. Если кто-то сможет оптимизировать &quot;это&quot;, то я отблагодарю его материально. uint32_t a0 = ps*26 + ps*51 + ps*102 + ps*51 +...

Оптимизация алгоритма
#include&lt;iostream&gt; #include&lt;stdlib.h&gt; #include&lt;time.h&gt; #include&lt;iomanip&gt; using namespace std; #define jaba for(i=0; i&lt;k; i++)...

Оптимизация алгоритма
Условие: Дана выборка (X_i, Y_i)_{i=1}^N. Предполагается, что она была построена по следующему закону: \begin{cases} Y=\beta \xi...

2
Заблокирован
25.06.2019, 22:47
долго при каких А,В,Р?
а вообще считает?

Добавлено через 17 минут
C++
1
2
3
4
5
6
7
8
9
10
11
12
    double A,B,P;
    cin>>A>>B>>P;
    P=1+P/100;
    int i=(int)(log(B/A)/log(P))+1;
    i+=A*pow(P,i)<B;
    cout<<i<<endl;
    for(i=0; A <= B; i++) 
    {
        A*=P;
        A=(long long unsigned)(100*A)/100.;
    }
    printf("%d %.2lf\n",i,A);
0
 Аватар для 7533620
163 / 70 / 39
Регистрация: 28.05.2019
Сообщений: 242
25.06.2019, 22:54
Цитата Сообщение от RainbowPesimist Посмотреть сообщение
абота алгоритма затягивается
у тебя просто бесконечный цикл когда
C++
1
(A * P)/100 == 0
либо пиши числа с фиксированной точкой либо вариант с даблами
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
int main()
{
    unsigned long long a, b, p;
    cin >> a >> b >> p;
    p = 1.0 + p / 100.0;
    unsigned ans = 0;
    while (a < b)
    {
        a *= p;
        auto x = a - (long long int)a;
        a = (long long int)a;
        x = std::floor(x * 100.0) / 100.0;
        a += x;
        ++ans;
    }
    cout << ans << endl;
    return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
25.06.2019, 22:54
Помогаю со студенческими работами здесь

Оптимизация алгоритма быстрого поиска
Допустим есть строка: &quot;Съешь ещё этих мягких французских булок, да выпей же чаю&quot;,и есть массив готовых строк, к примеру {...

Оптимизация алгоритма вычисления определителя матрицы
Здравствуйте! Написал я давеча программку, которая считает определитель. Только вот беда - он не считает определители матриц выше 10...

Оптимизация алгоритма перемножения двух матриц
Здравствуйте, нужна помощь. Есть 2 матрицы, нужно их перемножить так, что бы алгоритм выполнялся со скорость O(n) и O(log(n))

Найти два элемента в массиве, разница между которыми максимальна (оптимизация алгоритма)
Есть правильное решение задачи. Не проходит последние тесты по времени. Задачу я уже сдал, но вопрос остался открытым. Сигнатура функции...

Оптимизация алгоритма Хаффмана
Сделал архиватор, но работает он запредельно долго ~ 30 мин на папку размером 50Mb(и это только упаковка). нужна помощь &quot;Гуру&quot;...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! */ #include <iostream> #include <stack> #include <cctype>. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru