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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Neotwalker
21 / 1 / 0
Регистрация: 22.12.2013
Сообщений: 132
#1

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

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

C++ Дано вещественное число — цена 1 кг конфет. Вывести стоимость 1, 2, …, 10 кг конфет
Дано натуральное число n (n>99). Определить число сотен внем C++
Дано натуральное число n. Вывести на экран все натуральные числа, меньше n и взаимно простые с ним. C++
Поле first - целое число, длительность телефонного разговора в минутах; поле second - дробное число, стоимость одной минуты в гривнах C++
C++ Дано натуральное число .Если число содержит 5 цифр
Делится ли одно натуральное число на другое без остатка, используя операцию вычитания C++
Даны натуральное число п, действительное число x. Вычислить C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Хедин
18.07.2014, 09:27
  #2

Не по теме:

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

Neotwalker
21 / 1 / 0
Регистрация: 22.12.2013
Сообщений: 132
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++
Дано натуральное число n .Вывести все числа от 1 до 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     Вывести одно натуральное число – стоимость изготовления табличек
Ответ Создать тему
Опции темы

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