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

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

Восстановить пароль Регистрация
 
Neotwalker
21 / 1 / 0
Регистрация: 22.12.2013
Сообщений: 123
18.07.2014, 09:05     Вывести одно натуральное число – стоимость изготовления табличек #1
В Стране хотят построить город программистов Осколково. Город по плану будет большой. В нём будет 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
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.07.2014, 09:05     Вывести одно натуральное число – стоимость изготовления табличек
Посмотрите здесь:

C++ Дано вещественное число — цена 1 кг конфет. Вывести стоимость 1, 2, …, 10 кг конфет
Дано натуральное число N (N <= 100). Построить натуральное число, состоящее из N цифр и содержащее только цифры 1 и 2, которое делится на 2N C++
Циклы: Задано натуральное число n. Найти количество натуральных чисел, не превышающих n и не делящихся ни на одно из чисел 2, 3, 5 C++
C++ Дано двузначное натуральное число. Получить другое натуральное число, в котором порядок цифр изменен на противоположный
Делится ли одно натуральное число на другое без остатка, используя операцию вычитания C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Хедин
18.07.2014, 09:27
  #2

Не по теме:

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

Neotwalker
21 / 1 / 0
Регистрация: 22.12.2013
Сообщений: 123
18.07.2014, 09:30  [ТС]     Вывести одно натуральное число – стоимость изготовления табличек #3
Сделано
Хедин
 Аватар для Хедин
73 / 68 / 36
Регистрация: 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;
}
soon
 Аватар для soon
2536 / 1301 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
18.07.2014, 10:11     Вывести одно натуральное число – стоимость изготовления табличек #5
Хедин, не увидел в вашем решении привязки к двоичному исчислению.
Хедин
 Аватар для Хедин
73 / 68 / 36
Регистрация: 17.05.2014
Сообщений: 301
18.07.2014, 10:16     Вывести одно натуральное число – стоимость изготовления табличек #6
soon, перечитал только что еще раз, понял ошибку: оказывается, в файле номер дома прописывается в десятичном виде
soon
 Аватар для soon
2536 / 1301 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
18.07.2014, 10:26     Вывести одно натуральное число – стоимость изготовления табличек #7
Вот сама задача, можете проверить ваше решение
http://www.e-olimp.com/problems/2777
Хедин
 Аватар для Хедин
73 / 68 / 36
Регистрация: 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;
}
soon
 Аватар для soon
2536 / 1301 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
18.07.2014, 11:28     Вывести одно натуральное число – стоимость изготовления табличек #9
Хедин, дело, как минимум, в

C
1
printf("Result: %d\n", getFederalBudget());
Нужно просто вывести число
Хедин
 Аватар для Хедин
73 / 68 / 36
Регистрация: 17.05.2014
Сообщений: 301
18.07.2014, 14:13     Вывести одно натуральное число – стоимость изготовления табличек #10
soon, блин) ща пробну

Добавлено через 28 минут
Не, тоже бесполезно
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.07.2014, 16:12     Вывести одно натуральное число – стоимость изготовления табличек
Еще ссылки по теме:

C++ Вывести одно целое число– количество возможных разбиений войска на отряды
Ввести натуральное число N и вывести все натуральные числа, не превосходящие N C++
Найти цифры, из которых состоит заданное натуральное число, и вывести их в возрастающем порядке C++

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

Или воспользуйтесь поиском по форуму:
soon
 Аватар для soon
2536 / 1301 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
18.07.2014, 16:12     Вывести одно натуральное число – стоимость изготовления табличек #11
Цитата Сообщение от Хедин Посмотреть сообщение
Не, тоже бесполезно
Ну раз уж считываете с файла, то и выводите в файл.

Хотя, довольно странная политика данной системы, надо было, имхо, оставить либо только консольный ввод, либо только файловый.
Yandex
Объявления
18.07.2014, 16:12     Вывести одно натуральное число – стоимость изготовления табличек
Ответ Создать тему
Опции темы

Текущее время: 20:55. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru