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

Найти количество способов представления заданного числа N в виде суммы степеней двойки - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Перевести с Pascal на С++ . Знатоки http://www.cyberforum.ru/cpp-beginners/thread357191.html
var a, s: real; begin write('Введите длину стороны квадрата ->'); readln(a); s:=sqr(a); writeln('Площадь квадрата = ', s:6:2); end. var s, d, l, r: real; begin
C++ Шифрование текста в файле проблема в то что в процессе работы программа должна считывать текст в файле и кодировать его. Прога работает нормально,т.е. кодирует декодирует текст при вводе его с клавиатуры, а в файле делает это не коректно(такой рандом выдает :)). #include "stdafx.h" #include <string.h> #include <stdlib.h> #include <locale.h> const char alphabet="abcdefghijklmnopqrstuvwxyz"; char mas; int... http://www.cyberforum.ru/cpp-beginners/thread357189.html
C++ Составьте программу
Составьте программу, проверяющую, образуют ли элементы двумерного массива магический квадрат( в магическом квадрате суммы чисел по всем вертикалям, всем горизонталям и двум диагоналям одинаковы).
C++ Слейте две линейные таблицы А и В в новую таблицу С
Слейте две линейные таблицы А и В в новую таблицу С, поставив элементы таблицы А на нечетные места, а элементы таблицы В - на четные.
C++ Даны коэфициенты квадратного уравнения a,b,c http://www.cyberforum.ru/cpp-beginners/thread357133.html
Даны коэфициенты квадратного уравнения a,b,c. Найти действительные корни этого уравнения.
C++ Сист. Характеристики С++ У меня есть задание : "Напишите фрагмент программы на языке С++, который определяет системные характеристики компьютера и выводит их на экран." я еще новичек в системном программировании, подкиньте пожалуйста материал \ описание как это можно сделать, или порекомендуйте книгу где есть что то подобное. подробнее

Показать сообщение отдельно
valeriikozlov
Эксперт C++
 Аватар для valeriikozlov
4660 / 2486 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
27.09.2011, 19:32     Найти количество способов представления заданного числа N в виде суммы степеней двойки
Цитата Сообщение от neske Посмотреть сообщение
Может, кто-нибудь ее уже раньше решал, напишите решение пожалуйста.
Решал. Держите решение:
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
#include <stdio.h>
#if defined(_MSC_VER)
#define _CRT_SECURE_NO_DEPRECATE
#endif
 
#include <assert.h>
#include <stdio.h>
#include <stdlib.h>
 
#if defined(__GNUC__)
 
#define __STDC_FORMAT_MACROS
#include <inttypes.h>
 
#elif defined(_MSC_VER)
 
typedef __int64 int64_t;
#define PRId64 "I64d"
#define SCNd64 "I64d"
#endif
int main()
{ 
  freopen("input.txt","r",stdin);
  freopen("output.txt","w",stdout);
    int N, i,j, mas[10], i_n=0, tmp=1;
    int64_t mas1[1000]={0};
    while(tmp<=1000)
    {
        mas[i_n++]=tmp;
        tmp*=2;
    }
    for(i=0; i<10; i++)
    {
        for(j=999; j>=0; j--)
        {
            if(mas1[j]!=0)
            {
                tmp=mas[i];
                while(j+tmp<1000)
                {
                    mas1[j+tmp]+=mas1[j];
                    tmp+=mas[i];
                }
            }            
        }
        tmp=mas[i];
        while(tmp<=1000)
        {
            mas1[tmp-1]++;
            tmp+=mas[i];
        }
    }
    scanf("%d", &N);
    if(N==0)
        printf("0");
    else
        printf( "%" PRId64, mas1[N-1]); 
  return 0;
}
 
Текущее время: 01:05. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru