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

Задача на динамику или комбинаторику - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Деление дробей. http://www.cyberforum.ru/cpp-beginners/thread341056.html
Задача: вывести в порядке возрастания все правильные несократимые дроби со знаменателем, не превосходящим n. Сам код: #include <iostream> #include <string> using namespace std; using std::string; int main() { int n,i,num,numi; float last=0,min; string temp;
C++ Задача:Определить повторяются Цифры в Числе или нет... Нужно ввести число и в результате получить сообщение повторяются цифры в числе или нет.Способ определения может быть любым. Число нужно вводить полностью(не через пробел :) http://www.cyberforum.ru/cpp-beginners/thread341055.html
Синтаксис- непонятные знаки C++
Что значат знаки: ? и :
Инкремент и вывод на консоль. Непонятное. C++
Объясните, пожалуйста, почему, если так: int i = 5; cout << i << " "; cout << ++i << "\n";, то на консоль выводится всё правильно: 5 6. А если расположить так: int i = 5; cout << i << " " << ++i << "\n";, то выводится: 6 6?
C++ файл.txt http://www.cyberforum.ru/cpp-beginners/thread341006.html
как сделать так чтобы при записи в файл *.txt текст писался на новой строке? Вот на пример вот так: 1)number name 2)number name А не так как у меня 1)number name 2)number name
C++ нубовопросы У меня вопрос, связанный с циклами. Допустим, нужно суммировать числа от 1 до 10 и в итоге получится 55. Для это сделаем { int sum = 0, val = 1; while ( val <= 10 ) sum += val; ++val; } Теперь вопрос: подробнее

Показать сообщение отдельно
-=ЮрА=-
Заблокирован
Автор FAQ
11.08.2011, 15:32     Задача на динамику или комбинаторику
Цитата Сообщение от Dani Посмотреть сообщение
1 - 1
2 - 10
3 - 11
4 - 100
5 - 101
6 - 110
7 - 111
8 - 1000
Имеющие в двоичной записи 1 нуль: 10, 110,101
Чисел 4 -ри, а не три!
Вот алгоритм, он не быстр зато отрабатывает правильно
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
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
#include <windows.h>
#include <stdio.h>
#include <conio.h>
 
void PumpMessages(HWND hWND);
char * num2bin(unsigned long lnum);
 
int main()
{
    HWND hWnd = GetForegroundWindow();
    long N,K,nCount = -1;
    char str[19],*buf;
    do
    {
        printf("Enter numbers:\r\n");
        scanf("%[^\n]",str);
        sscanf(str,"%u %u",&N,&K);
        memset(str,'0',K);
        str[K] = '\0';
        while(0 < N)
        {
            if(strstr(buf = num2bin(N),str))
                nCount++;
            printf("bin %s\r\n",buf);
            N--;
            //Избегаем замерзания программы
            PumpMessages(hWnd);
        }
        printf("%d numbers with square 10^%u\r\n",nCount,K);
    }
    while(toupper(getch()) == 'Y');
    printf("Enter num: ");
    unsigned long lnum;scanf("%u",&lnum);
    printf("%s\r\n",num2bin(lnum));
    getch();
    return 0;
}
 
char * bin = (char *)malloc(sizeof(char));
char * num2bin(unsigned long lnum)
{
    int i = 0;
    do
    {
        bin[i] = '0';
        if(lnum%2)
            bin[i] = '1';
        lnum /= 2;
        if(0 < lnum)
            bin = (char *)realloc(bin,(1 + (i = i + 1))*sizeof(char));
    }
    while(0 < lnum);
    bin[i + 1] = '\0';
    return bin;
}
 
void PumpMessages(HWND hWND)
{
    MSG msg;
    // Handle dialog messages
    while(PeekMessage(&msg, hWND, 0, 0, PM_REMOVE))
        if(!IsDialogMessage(hWND, &msg) && TranslateMessage(&msg))
            DispatchMessage(&msg); 
}
Миниатюры
Задача на динамику или комбинаторику  
 
Текущее время: 02:04. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru