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

Динамическое программирование - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Подскажите как доделать прогу http://www.cyberforum.ru/cpp-beginners/thread985870.html
Доброго времени суток) Помогите довести до ума программу, чтобы она работала в рамках одной проги 1) Находила наибольшую нечетную цифру. Если ее нет, возвратить 0. 2)Возвратить число с обратным расположением цифр. Собственно вот сам код, который нужно доделать и если получится то упростить. 1)#include <iostream.h> // Найти наибольшую нечетную цифру. Если ее нет, возвратить 0 int main() {...
C++ Моя новая нубская программа и снова не работает:( #include<iostream> using namespace std; int main() { setlocale(0,"russian"); char suma; char umnozhenie; char deystvie; int d1; int d2; http://www.cyberforum.ru/cpp-beginners/thread985869.html
C++ Открыть файл .pas как текстовый
Как можно считать файл *.pas или *.cpp как текстовый ??
C++ Как написать функцию переворачивающую элементы списка
Помогите написать функцию, которая переворачивает элементы списка в обратном порядке. Спасибо! #include "stdafx.h" #include <conio.h> #include <iostream> /*Структура содержащая поле данных.*/ typedef struct Data { int a; };
C++ Факториал большого числа http://www.cyberforum.ru/cpp-beginners/thread985843.html
Доброго времени суток! Захотелось вычислить факториал большого числа. Наткнулся на gmp. Посмотрел это http://www.cyberforum.ru/blogs/131347/blog488.html и доку. Получилось так: #include <iostream> #include <gmp.h> #include <gmpxx.h> int main() { std::cout << "Введите n:\n";
C++ Функции в c++. никак не разобраться с задачками можете объяснить решения нескольких задач? застрял на передаче параметров по ссылке. а также : возврат результата по ссылке. не понимаю, как это работает вообще всё. 1) написать фун-ию, возвращающую квадрат,куб и четвертую степень своего параметра, являющегося вещественным числом типа double. получилось что-то такое. (хотя сам не пойму как это работает) #include <iostream> #include... подробнее

Показать сообщение отдельно
Семан
1 / 1 / 0
Регистрация: 13.03.2012
Сообщений: 245
23.10.2013, 18:51     Динамическое программирование
народ помогите пожалуйста.
есть задача

Написать программу, позволяющую вычислить количество чисел, не содержащих нули, сумма цифр которых ровна заданному N
Пример
вход-3
выход-4
--------------------
вот принцип
сама 3
12(1+2=3)
21(2+1=3)
111(1+1+1=3)
--------------
как это решить динамическим способом? методом перебор я сделал, динамически не могу, помогите пожалуйста

Добавлено через 1 минуту
Вот код рабочий метода перебор
C++ (Qt)
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
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
#include "stdafx.h"
#include <string>
#include <queue>
#include <stack>
#include <tchar.h>
#include <windows.h>
#include <stdio.h>
#include <iostream> 
#include <conio.h>
using namespace std;
 
 
 
string IntToStr(int x)
{
    char buf[20];
    sprintf(buf,"%d",x);
    return buf;
}
 
int test (int num)
{
    string str;
    str = IntToStr(num);
    for(int i=0; i<str.size(); i++)
    {
        if (str[i]=='0')
        {return 0;}
    }
return 1;
}
 
 
int main()
{
    while(1)
    {
    int num2, num,temp;
    int n,v;
    int a=0;
    //int b=11;
    int b=1;
    int p=0;
    queue <int> q;
          
       int g = 1;
//int n = 0;
int i=1;
int h;
    stack<int> s;
      
 
temp=0;
 
    cin>>n;
    s.push(1);
 
    while(n!=i)
{
 
g = g*10;
g=g+1;
i++;
}
//cout<<g+1;
 
    for(int i=0;i<n;i++)
        q.push(1);
        //b*=n-1;
    b*=1;
    __int64 freq;
    __int64 begin;
    __int64 end;
 
 
 
    
    QueryPerformanceFrequency((LARGE_INTEGER*)&freq);
    QueryPerformanceCounter ((PLARGE_INTEGER) &begin);  
        
    
        
            
        for(int i=0;i<n;i++)
            v=q.front();
    
    for(int i=1;i<g;i++)
    {
        num2=num=i;
            while(num!=0)
            {
                temp+=num%10;
 
                num=num/10;
            }
            if(temp==n)
                if(test(num2)==1)
                {
    
                    if('\n')
                    
                        {
                            a++;
 
                        }
         p=p+a;  a=0;
                }
                temp=0;
    }
 
    
 
    QueryPerformanceCounter((LARGE_INTEGER*)&end);
    cout<<"time "<<(double)(end - begin) /( double)freq<<endl;
    cout<<p+1;
        
    getch();
    system("cls");
    }
    return 0;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 01:58. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru