Форум программистов, компьютерный форум CyberForum.ru

помогите написать лабу - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Поиск звена с элементом el в списке, заданном указателем phead http://www.cyberforum.ru/cpp-beginners/thread50022.html
#include<iostream> using namespace std; class Spisok { private: struct node { int elem; node *sled; };
C++ Перегрузка функции Что такое перезагрузка функции в с++? Для чего она нужна? Есть случаи, когда без нее никак? Приведите пример перезагрузки функции? Тут есть перезагрузка? static int Square(int var) { return (var * var); } static long Square(long var) http://www.cyberforum.ru/cpp-beginners/thread50007.html
Динамическое очищение массива C++
Помогите пжлст) Нужно в программе при определенных обстоятельствах очистить массив. char n;
C++ Реверсирование строк
Всем добрый вечер! Как всегда, практикуюсь по книжным примерам. Вот дошёл до темы реверсирования строк, то есть расположения букв в обратном порядке. Столкнулся с таким кодом, и не ясен стал цикл,то есть как именно происходит замена букв в нём? Если кто может, подскажите,если не сложно? Не ясен сам цикл, и строка перед ним: end = &str; Заранее благодарю. Вот исходник: #include...
C++ Найти корень квадратного уравнения http://www.cyberforum.ru/cpp-beginners/thread49983.html
Люди помогите решить программу з оператором (if) Задание: Знайти корень квадратного уравнения!!!!!
C++ Магический квадрат и другие задачи здравствуйте. Мне очень не обходима ваща помощь в следуших заданиях. 1. Дана целая квадратная матрица n-го порядка. Определить, является ли она магическим квадратом, т.е. такой, в которой суммы элементов во всех строках и столбцах одинаковы. 2. Определить натуральное число не больше заданного n с наибольшей суммой делителей. Исполь-зовать функцию вычисления суммы делителей числа 3. Написать... подробнее

Показать сообщение отдельно
valeriikozlov
Эксперт C++
 Аватар для valeriikozlov
4661 / 2487 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
13.09.2009, 08:07     помогите написать лабу
Комментарии к предыдущему алгоритму:
1. Заносим значения каждой цифры введеного числа в массив mas_ch[] в десятичной форме (для этого используем созданный массив mas_36[]).
2. Проводим (проверку на то что количество цифр четное и что сумма цифр делится без остатка на 2).
3. Вычисляем сумму элементов (она нам нужна , т.к. в дальнейшем алгоритм построен таким образом: необходимо выбрать половину цифр, чтобы их сумма была равна половине суммы).
4. С помощью стека делаем перебор элементов (стек создан размером = половина количества цифр начального числа).(В дальнейшем я пишу "сумма цифр в стеке", это для простоты. На самом деле в стеке находятся индексы элементов массива mas_ch[] и я подразумеваю под суммой цифр в стеке - сумму элементов массива mas_ch[] индексы которых находятся в стеке)

В общих чертах перебор выглядит так (перебор выполняем до тех пор пока первым элементом в стеке не окажется индекс цифры массива mas_ch[]) который = половина количества цифр массива mas_ch[] + 1):
Заносим число в стек.
Входим в цикл.
Первая проверка: если стек заполнен и сумма цифр стека равна половине суммы цифр массива mas_ch[], то выходим из цикла.
Вторая проверка: если в стеке последний индекс массива mas_ch[] и сумма цифр стека не равна половине суммы цифр массива mas_ch[], то удаляем из стека подряд идущие индексы, затем еще один и вместо последнего в стек заносим следующий за ним. (При первом прохождении цикла эта проверка не нужна, но нужна при последующих прохождениях).
Третья проверка: ((если стек заполнен, а сумма цифр стека не равна половине суммы цифр массива mas_ch[]) или (стек не заполнен, а сумма превышена)) и не достигнут последний индекс массива mas_ch[], то последний индекс массива mas_ch[] в стеке заменяем на следующий.
Четвертая проверка: если стек не заполнен и сумма цифр стека не превышает половины суммы цифр массива mas_ch[], то заносим в стек следующий индекс массива mas_ch[].
В конце цикла нахожу сумму цифр стека.
После цикла еще одна проверка на счастливость и вывод результата (с переводом десятичных чисел в 36-ричные).
 
Текущее время: 21:56. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru