Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
21 / 1 / 1
Регистрация: 22.12.2013
Сообщений: 167
1

Вывести одно натуральное число – стоимость изготовления табличек

18.07.2014, 09:05. Просмотров 755. Ответов 10
Метки нет (Все метки)


В Стране хотят построить город программистов Осколково. Город по плану будет большой. В нём будет N улиц, на каждой из которой по ai домов. Правительство решило применить инновации, и вместо обычных табличек с номерами домов они хотят повесить таблички с номерами домов, записанными в двоичном представлении.
После утверждения такой нумерации в городе Осколково, был произведён тендер на изготовление табличек с цифрами 0 и 1. Выигравшая компания изготовляет табличку с цифрой 0 за a рублей, а табличку с цифрой 1 за b рублей. Теперь правительство хочет узнать, сколько будет стоит изготовление табличек на дома.
Первая строка входного файла содержит три натуральных числа N (1 ≤ N ≤ 100) и a, b (1 ≤ a, b ≤ 100) – количество улиц в городе и стоимости изготовления цифр 0 и 1.
В следующих N строках содержится натуральное число ai (1 ≤ ai ≤ 100) – количество домов. Далее в строке содержатся ai натуральных чисел cj (1 ≤ cj ≤ 100) – номера домов на этой улице, для которых будут изготовлены таблички. Для одного дома может потребоваться более одной таблички.
Вывести одно натуральное число – стоимость изготовления табличек.

Пример ввода

1 1 2
3 2 2 3

Пример вывода

10
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
18.07.2014, 09:05
Ответы с готовыми решениями:

Программа должна вывести одно натуральное число — N-e в порядке возрастания число-палиндром
Рассмотрим все натуральные числа, запись которых в десятичной системе счисления является...

Вывести одно натуральное число, являющееся псевдомаксимумом данной последовательности
Олимпиада по программированию Школьный этап Всероссийской олимпиады школьников Удмуртской...

Дано натуральное число, определяющее стоимость товара в копейках. Выразить стоимость в рублях и копейках
Пожалуйста, помогите! Завтра контрольная! 4)Дано натуральное число(1<n<9999), определяющее...

Задано натуральное число n. Найти количество натуральных чисел, не превышающих n и не делящихся ни на одно из
1. Формализация задачи. 2. Разработка алгоритма. 3. Построение схемы обработки данных. 4. Запись...

__________________
Помогаю в написании студенческих работ здесь.
Записывайтесь на профессиональные курсы C++ разработчиков
10
Хедин
18.07.2014, 09:27
  #2

Не по теме:

Neotwalker, Владимир Владимирович, залогиньтесь под своим именем, пожалуйста

0
21 / 1 / 1
Регистрация: 22.12.2013
Сообщений: 167
18.07.2014, 09:30  [ТС] 3
Сделано
0
76 / 71 / 55
Регистрация: 17.05.2014
Сообщений: 301
18.07.2014, 10:01 4
Neotwalker, как то вот так будет. Не тестировал, проверьте
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
int considePrice(const string &number, const int a, const int b)
{
    int n = number.length(), summ = 0;
    for (int i = 0; i < n; ++i)
        summ += (number[i] == '0' ? a : b);
    return summ;
}
 
int getFederalBudget()
{
    int summ = 0;
    ifstream F;
    if (!F.open("D:\\text.txt"))
    {
        cout << "Error open file!" << endl;
        return -1;
    }
    int N, a, b;
    F >> N >> a >> b;
    for (int i = 0; i < N; ++i)
    {
        int ai;
        F >> ai;
        for (int j = 0; j < ai; ++j)
        {
            string buff;
            F >> buff;
            summ += considePrice(buff, a, b);
        }
    }
    return summ;
}
0
2552 / 1317 / 178
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
18.07.2014, 10:11 5
Хедин, не увидел в вашем решении привязки к двоичному исчислению.
1
76 / 71 / 55
Регистрация: 17.05.2014
Сообщений: 301
18.07.2014, 10:16 6
soon, перечитал только что еще раз, понял ошибку: оказывается, в файле номер дома прописывается в десятичном виде
0
2552 / 1317 / 178
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
18.07.2014, 10:26 7
Вот сама задача, можете проверить ваше решение
http://www.e-olimp.com/problems/2777
0
76 / 71 / 55
Регистрация: 17.05.2014
Сообщений: 301
18.07.2014, 11:08 8
soon, чет я правда не пойму... забил задачу, а мне выдает ошибки. Неужели неправильно?
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
#include <stdio.h>
 
int consideHomePrice(int number, int a, int b)
{
    int summ = 0;
    while (number > 1)
    {
        summ += (number%2 == 0 ? a : b);
        number /= 2;
    }
    summ += (number == 0 ? a : b);
    return summ;
}
 
int getFederalBudget()
{
    int summ = 0, N, a, b, i, j, ai, buff;
    FILE *f = fopen("input.txt", "r");
    if (!f)
    {
        printf("Error open file!\n");
        return -1;
    }
    fscanf(f, "%d %d %d", &N, &a, &b);
    for (i = 0; i < N; ++i)
    {
        fscanf(f, "%d", &ai);
        for (j = 0; j < ai; ++j)
        {
            fscanf(f, "%d", &buff);
            summ += consideHomePrice(buff, a, b);
        }
    }
    fclose(f);
    return summ;
}
 
int main()
{
    printf("Result: %d\n", getFederalBudget());
    return 0;
}
0
2552 / 1317 / 178
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
18.07.2014, 11:28 9
Хедин, дело, как минимум, в

C
1
printf("Result: %d\n", getFederalBudget());
Нужно просто вывести число
0
76 / 71 / 55
Регистрация: 17.05.2014
Сообщений: 301
18.07.2014, 14:13 10
soon, блин) ща пробну

Добавлено через 28 минут
Не, тоже бесполезно
0
2552 / 1317 / 178
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
18.07.2014, 16:12 11
Цитата Сообщение от Хедин Посмотреть сообщение
Не, тоже бесполезно
Ну раз уж считываете с файла, то и выводите в файл.

Хотя, довольно странная политика данной системы, надо было, имхо, оставить либо только консольный ввод, либо только файловый.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
18.07.2014, 16:12

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь или здесь.

Выведите одно натуральное число – номер ближайшего предка для двух видов
Возможно как-то неправильно назвал тему, но вот суть: Во время исследований, посвященных появлению...

Делится ли одно натуральное число на другое без остатка, используя операцию вычитания
Напечатать программу через цикл while: Выяснить, делится ли одно натуральное число на другое без...

Рекурсия: определить, одно натуральное число является следующим или предыдущим для другого
Определить предикаты, которые рекурсивно определяют если одно натуральное число является следующим...

Найдите хоть одно натуральное число, которое делится на 11, а при делении на 2, 3, 4, 5.10 дает в остатке 1
Всем доброго времени суток, вообщем: задали задание &quot;Найдите хоть одно натуральное число, которое...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.