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

Единицы - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Найти сумму ряда http://www.cyberforum.ru/cpp-beginners/thread381472.html
Составить алгоритм и написать программу на языке С – консольное приложение, выполняющую набор действий, заданный соответствующим вариантом. Программа должна работать в текстовом режиме, обеспечивать процедуры запроса и ввода данных, сопровождающиеся соответствующими пояснениями. В случае, когда в программе выполняются действия над массивами данных, программный диалог должен начинаться с запроса...
C++ Оператор If Всем доброго времени суток. Такой вопрос, мне нужно задать условие : baza.time >= 30 и в тоже время baza.price < 100000 чтобы вывести товар хранящихся больше месяца, стоимость которых превышает 100 000 р. Но как это записать? Я так понял нужно использовать && но у меня что то не получается Делаю так : if ((baza.time) >= 30) && (baza.price < 1) Ругается http://www.cyberforum.ru/cpp-beginners/thread381466.html
С++ ошибки C++
Задание 1. Дано число a. Не используя никаких операций, кроме умножения и присваивания, составить программу, вычисляющую a7 за 4 операции умножения; 1. int main() { b = a*a; c = b*b; d = a*b*c; // d =a^7;
C++ Программные реализации быстрого возведения в степень
реализовать быстрое возведение в степень числа минимальным количеством умножения
C++ Создать список студентов с оценками по нескольким дисциплинам. Отсортировать список по убыванию среднего балла. Имеющих двойки удалить из списка. http://www.cyberforum.ru/cpp-beginners/thread381449.html
Помогите, пожалуйста, с задачей... Создать список студентов с оценками по нескольким дисциплинам. Отсортировать список по убыванию среднего балла. Имеющих двойки удалить из списка.
C++ Определить принадлежит ли точка с координатами (x, y) треугольнику программа должна определять принадлежит ли точка с координатами (x, y) треугольнику, который задан координатами его вершин. подробнее

Показать сообщение отдельно
alkagolik
 Аватар для alkagolik
1510 / 616 / 79
Регистрация: 15.07.2011
Сообщений: 3,552
19.11.2011, 03:26     Единицы
будет первое число с минимальным количеством единиц. так что при входных данных 5 7 на выходе получите 12, но это не противоречит условию задачи т.к.
Цитата Сообщение от Shato Посмотреть сообщение
Если решений несколько, выведите любое из них
для архитектурной совместимости переделывайте сами, мне лень.
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
#include <stdio.h>
 
unsigned int bin_one(unsigned int num, unsigned int sum)
{
    unsigned int count = 0, x = num;
    while ( x )
    {
        count += (x & 1);
        if (count == sum)
            break;
        x >>= 1;
    }
    return count;
}
 
int main(void)
{
    unsigned int p, y = 1000000, x, r;
    unsigned int i = 1, sum, tmp, tmp_x;
    sum = y;
    do
    {
        puts("дай остаток");
        scanf("%u", &p);
        puts("дай делитель");
        scanf("%u", &r);
    }
    while ( (r <= p) | (r < 1) | (r > 1000) );
 
    while ( r * i <= y)
    {
        x = r * i + p;
        tmp = bin_one(x, sum);
        if (sum > tmp)
        {
            sum = tmp;
            tmp_x = x;
        }
        if (sum == 1)
            break;
        ++i;
    }
    printf("%u\n", tmp_x);
 
    return 0;
}
Добавлено через 43 минуты
в таком варианте подольше будет, но и диапазон полный пройдет
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
#include <stdio.h>
 
unsigned int bin_one(unsigned long long num, unsigned int sum)
{
    unsigned int count = 0;
    while ( num )
    {
        if (num & 1)
            ++count;
        if (count == sum)
            break;
        num >>= 1;
    }
    return count;
}
 
int main(void)
{
    unsigned int p, y = 0xFFFFFFFF;
    unsigned int i = 1, sum, tmp;
    unsigned long long x = 0, r, tmp_x;
    sum = y;
    do
    {
        puts("дай остаток");
        scanf("%u", &p);
        puts("дай делитель");
        scanf("%llu", &r);
    }
    while ( (r <= p) | (r < 1) | (r > 1000) );
 
    while ( x <= y)
    {
        x = r * i + p;
        ++i;
        tmp = bin_one(x, sum);
 
        if (sum > tmp)
        {
            sum = tmp;
            tmp_x = x;
        }
        if (sum == 1)
            break;
    }
    printf("%llu\n", tmp_x);
 
    return 0;
}
 
Текущее время: 13:53. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru