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

Уменьшение числа(динамика) - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Задача на структуры C++ Составить инвентарную ведомость http://www.cyberforum.ru/cpp-beginners/thread448169.html
Есть задачка: Решить задачу, используя стрктуру содержащую члены-данные и члены-функции На основе данных входного файла составить инвентарную ведомость игрушек, включив следующие данные: название игрушки, её стоимость (в руб.). возрастные границы детей, для которых предназначена игрушка. Вывести в новый файл информацию о тех игрушках, которые преназначены для детей от N до M лет. Шаблон задачи...
C++ Инсталяция библиотеки FLTK В книге чтобы инсталировать, открыть файл fltk.dsw, а в каталоге нет файлов такого формата, все *.vcproj. Помогите установить http://www.cyberforum.ru/cpp-beginners/thread448154.html
C++ Построить график функции
написать программу, которая выводит на экран график функции y=2*sin(x)*exp(sqrt(5)
C++ Работа с INI-файлами в Visual Studio 2010
Можете, пожалуйста, объяснить, как работать с ini-файлами в Visual Studio 2010. Их создание, чтение с существующих файлов, редактирование и какие модули подключать
C++ Динамические структуры данных на языке С/С++ http://www.cyberforum.ru/cpp-beginners/thread448087.html
Сформировать динамическую структуру,содержащую данные по студентам в следующем виде: "Фамилия Имя Группа ГР RS", где ГР – год рождения, RS – средний рейтинг (не менее 5 записей). Осуществить обработку структуры СТЕК : Все студенты, чьи имена начинаются с буквы "А"
C++ Возращение значения в рекурсии Есть бинарное дерево и есть функция, которая должна рекурсивно пройти по вершинам в порядке возрастания ключей и вернуть первое значение, подходящее по условию. Но почему-то функция доходит до самого последнего элемента, хотя не должна. Как это исправить? Код дерева Код: class Tree { public: static int Count; struct tree { int key; подробнее

Показать сообщение отдельно
Niсe
 Аватар для Niсe
1 / 1 / 0
Регистрация: 09.12.2009
Сообщений: 30
18.02.2012, 00:28     Уменьшение числа(динамика)
Здравствуйте, помогите найти ошибку в коде для задачи - имеется натуральное число(1<=n<=10^6), к нему применимы операции -1 /2 и /3, при этом стоимость каждой операции - текущее значение N. Стоимость преобразования - суммарная стоимость всех операций в преобразовании. Вам необходимо с помощью последовательностей указанных операций преобразовать число N в единицу таким образом, чтобы стоимость преобразования была наименьшей.
Входные данные
Число N.
Выходные данные
Выведите на первой строке искомую наименьшую стоимость. Во второй строке должна содержаться последовательность операций. Если было произведено деление на 2 или на 3, выведите /2 (или /3). Если же было вычитание, выведите -1. Все операции выводите разделяя пробелом. Если оптимальных ответов несколько, выведите любой.
Пример
Ввод
5
Вывод
11
-1 /2 -1
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
#include <iostream>
#include <string>
using namespace std;
int main()
{
    int n; cin>>n;
    int *mas = new int[n+1];
    string s;
    mas[1] = 0;
    for(int i = 2; i <= n; i++)
    {
        if(i%2==0)
            mas[i] = mas[i/2]+i;            
        else 
        {
            if (i%3==0) 
                mas[i] = mas[i/3]+i;
            else mas[i] = mas[i-1]+i;
        }
    }
    cout<<mas[n]<<endl;
    while (n>1)
    {
        if(s.size()) s+= " ";
        if (n%3==0) {n/=3; s+="/3";}
        else{
                if (n%2==0) {n/=2; s+="/2";}
                else {n-=1; s+="-1";}
            }
 
    }
    cout<<s;
    delete[] mas;
return 0;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 00:23. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru