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

Цикл с накоплением C++

27.10.2020, 11:54. Показов 1494. Ответов 10
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Даны целые числа n и k (n> = k> = 0). вычислить:
Название: 3333.PNG
Просмотров: 83

Размер: 4.1 Кб
Нужно сделать через do-while
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
27.10.2020, 11:54
Ответы с готовыми решениями:

Цикл с накоплением
Дано действительное число а, натуральное число п. Вычислить: Помогите пожалуйста! И если есть возможность нужно использовать do и...

Цикл: сумма с накоплением
Здравствуйте! Помогите, пожалуйста. Нужно, чтобы считались квадратные корни от 2 до 49 и результаты суммировались. Вот я написал код, но...

Цикл с накоплением суммы на TASM2
Здравствуйте. Имеется задание написать программу вычисляющую S по формуле. Пользователь должен ввести x и n, где n-число проходов цикла , а...

10
Диссидент
Эксперт C
 Аватар для Байт
27710 / 17328 / 3810
Регистрация: 24.12.2010
Сообщений: 38,979
27.10.2020, 12:06 2
Биномальный коэффициент, что ли? https://www.cyberforum.ru/cgi-bin/latex.cgi?C_n^k

Добавлено через 9 минут
В лоб считать такие вещи не сложно. Но очень плохо. Потому как велика вероятность переполнения любых возможных типов данных.
Так https://www.cyberforum.ru/cgi-bin/latex.cgi?C_{100}^2 заставит считать почти 100! (число более чем с 150 знаками) хотя само по себе всего 4950
Тут надо придумать, как грамотно сокращать промежуточные результаты
0
 Аватар для Nishen
1355 / 854 / 365
Регистрация: 26.02.2015
Сообщений: 3,806
27.10.2020, 13:39 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
33
34
35
36
#include <iostream>
 
 
 
int main() {
 
    std::size_t n = 0;
    std::size_t k = 0;
 
    std::cout << "Please, enter n and k: ";
    std::cin >> n >> k;
 
    int result = n - k + 1;
    std::size_t iter = 1;
    std::size_t s = k;
 
    do {
 
        result = result * (n - k + iter);
 
        if (result % s == 0) {
 
            result = result / s;
            --s;
 
        }
 
        ++iter;
 
    } while (iter <= k);
 
    std::cout << "Result: " << result << '\n';
 
    return 0;
 
}
0
Диссидент
Эксперт C
 Аватар для Байт
27710 / 17328 / 3810
Регистрация: 24.12.2010
Сообщений: 38,979
27.10.2020, 15:24 4
Цитата Сообщение от Nishen Посмотреть сообщение
result = result / s;
Тут фигово то, что деления нацело может не получиться. А результат-то должен быть целым числом.
Тут обычно делают так. Отдельно считают числитель и знаменатель. И на каждом шаге находят ихний НОД (наибольшый общей делитель) И на этот НОД делят (сокращают).
Другой путь - воспользоваться треугольником Паскаля (или соответствующими соотношениями между биномальными коэффициентами). Тогда и умножений не понадобится.
0
 Аватар для Nishen
1355 / 854 / 365
Регистрация: 26.02.2015
Сообщений: 3,806
27.10.2020, 15:47 5
Цитата Сообщение от Байт Посмотреть сообщение
Тут фигово то, что деления нацело может не получиться. А результат-то должен быть целым числом.
Так я же проверяю перед этим, делит s result нацело или нет.

Добавлено через 34 секунды
Цитата Сообщение от Байт Посмотреть сообщение
Другой путь - воспользоваться треугольником Паскаля (или соответствующими соотношениями между биномальными коэффициентами). Тогда и умножений не понадобится.
Сейчас чуть позже почитаю про треугольник.

Добавлено через 56 секунд
Цитата Сообщение от Nishen Посмотреть сообщение
Так я же проверяю перед этим, делит s result нацело или нет.
Все, я понял свою ошибку.
0
Диссидент
Эксперт C
 Аватар для Байт
27710 / 17328 / 3810
Регистрация: 24.12.2010
Сообщений: 38,979
27.10.2020, 18:07 6
Цитата Сообщение от Nishen Посмотреть сообщение
Так я же проверяю перед этим, делит s result нацело или нет.
Да. Сходу не увидел. Но это все равно не очень хорошо...
Вот еще. --s только в случае делимости. (строчка 24)
Цитата Сообщение от Nishen Посмотреть сообщение
я понял свою ошибку.
Эту? (--s)
Цитата Сообщение от Nishen Посмотреть сообщение
позже почитаю про треугольник.
Там просто рекурсия
https://www.cyberforum.ru/cgi-bin/latex.cgi?C_n^k = C_{n-1}^{k-1} + C_{n-1}^k
0
Эксперт CЭксперт С++
 Аватар для liv
5118 / 4566 / 854
Регистрация: 07.10.2015
Сообщений: 9,462
27.10.2020, 18:28 7
Цитата Сообщение от Байт Посмотреть сообщение
Там просто рекурсия
Она самая!
C++ Скопировано
1
2
3
4
5
6
7
8
9
int Cnk(int n, int k)
{
    if (n == k)
        return 1;
    else if (k == 1)
        return n;
    else
        return Cnk(n - 1, k - 1) + Cnk(n - 1, k);
}
Но стоит-то задача:
Цитата Сообщение от ggllk543 Посмотреть сообщение
Нужно сделать через do-while
1
Диссидент
Эксперт C
 Аватар для Байт
27710 / 17328 / 3810
Регистрация: 24.12.2010
Сообщений: 38,979
27.10.2020, 19:28 8
Лучший ответ Сообщение было отмечено Manowar как решение

Решение

Цитата Сообщение от liv Посмотреть сообщение
Но стоит-то задача:
Вы знаете, в последнее время участились задачи с совершенно идиотскими постановками.
- Сделать через switch (там где он только мешается)
- Динамически выделять память через malloc-realloc по одному элементу (!!!) И в разделе С++ (!)
- что-то сделать через goto
- Это do-while
Забавно!
Но детей жалко...
1
Эксперт CЭксперт С++
 Аватар для liv
5118 / 4566 / 854
Регистрация: 07.10.2015
Сообщений: 9,462
27.10.2020, 19:31 9
Цитата Сообщение от Байт Посмотреть сообщение
Но детей жалко...
Ага, как всегда: кто не умеет что-то делать, учит этому чему-то...
0
27.10.2020, 19:54 10

Не по теме:

liv, на эту тему можно много содержательно и интересно оффтопить. Было бы другое настроение - я бы с удовольствием....:) Но это беда, большая беда...

0
28.10.2020, 12:16 11

Не по теме:

Цитата Сообщение от Байт Посмотреть сообщение
Но детей жалко...
Для тех кто издевается над детьми заготовлено специальное место в аду...

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
28.10.2020, 12:16
Помогаю со студенческими работами здесь

Создать программу по всем 3 видам циклов...цикл с параметром,цикл с условием,цикл,и цикл с предусловием...
Найти сумму чисел 1 в квадрате до 10 c квадрате...операцию возведению в степень не использовать учесть особенности получения квадратного...

Сумма с накоплением
Доброго всем времени суток. Порошу помощи… так как программист я …. Правда с миром поздаровался, галлоны в литры и фаренгейта в цельсий...

Циклы с накоплением
Заданные действительные числа a1, a2, ..., a15. вычислить:

Сумма с накоплением
Здравствуйте! Помогите решить проблему. Есть таблица в которой на начальный период в поле - общие количество отгрупированых по ,на дату....

Гистограмма с накоплением
Добрый день! Помогите, пожалуйста. Создала форму, на которой находится PictureBox, Button и DataGridView. Нужно, чтобы при вводе в DataGrid...


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

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

Редактор формул (кликните на картинку в правом углу, чтобы закрыть)
Новые блоги и статьи
Запуск контейнера Docker в облаке
Mr. Docker 15.03.2025
Что такое Docker-контейнер? Если коротко — это легковесный, автономный пакет, содержащий всё необходимое для запуска приложения: код, зависимости, библиотеки и конфигурации. Когда мы говорим о. . .
Осваиваем Kubernetes: Подробная шпаргалка
Mr. Docker 15.03.2025
Kubernetes — это открытая платформа для автоматизации развертывания, масштабирования и управления контейнеризированными приложениями. Он был создан для решения проблем, с которыми сталкиваются. . .
Лучшие PHP REST API фреймворки
Jason-Webb 15.03.2025
Современные PHP REST API фреймворки предлагают большой набор функциональности: от автоматической валидации данных и управления маршрутизацией до генерации документации и интеграции с различными. . .
Многопоточность в Java с Project Loom: виртуальные или обычные потоки
Javaican 15.03.2025
Многопоточность всегда была одноим из основных элементов в разработке современного программного обеспечения. Она позволяет приложениям обрабатывать несколько задач одновременно, что критично для. . .
Что нового в Swift 6 и особенности миграции
mobDevWorks 15.03.2025
Swift 6 — это новый крупный релиз языка программирования от Apple, анонсированный на WWDC 2024. Если вы следили за эволюцией Swift, то наверняка заметили, что многие значимые возможности, которые. . .
Вопросы на собеседовании по Android
mobDevWorks 14.03.2025
По данным статистики, Android занимает более 70% мирового рынка мобильных операционных систем, что делает платформу привлекательной как для начинающих разработчиков, так и для опытных профессионалов. . . .
Лучшие игровые движки для Python
py-thonny 14.03.2025
Python обеспечивает разработчиков игр мощными движками и фреймворками, которые позволяют воплотить практически любую идею — от простой аркады до визуального романа с разветвленным сюжетом. Главное. . .
Бессерверный JavaScript: Разработка масштабируемых API с AWS Lambda
run.dev 14.03.2025
Но что такое бессерверные вычисления на самом деле? По сути, это модель облачных вычислений, где разработчик фокусируется исключительно на создании бизнес-логики, не тратя время на настройку. . .
Безопасность кода в C++26: Менеджеры ресурсов и висячие ссылки
NullReferenced 14.03.2025
C++ всегда был языком, предоставляющим разработчикам большие возможности и гибкость, но вместе с тем требующим ответственности. Одной из самых коварных проблем даже для опытных программистов остаются. . .
smart-agent proper interface settings (2025)
jigi33 14.03.2025
Smart-agent proper interface settings (mart 2025). (see screenshots to look at "Etalon" ARM)
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru
Выделить код Копировать код Сохранить код Нормальный размер Увеличенный размер