Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.93/14: Рейтинг темы: голосов - 14, средняя оценка - 4.93
Тина_Ливингстон
0 / 0 / 0
Регистрация: 01.11.2011
Сообщений: 59
#1

Напишите программу, которая по задуманному числу и предложенному варианту второго игрока считает количество «быков» и «коров».

09.11.2011, 22:25. Просмотров 2521. Ответов 5
Метки нет (Все метки)

Первая задача

«Быки и коровы»


Вам, наверное, известна логическая игра «быки и коровы», но, тем не менее, пояс-ним ее правила. Один игрок задумывает четырёхзначное число, состоящее из различных цифр (ведущий ноль допустим). Второй игрок пытается отгадать задуманное число и на-зывает свои варианты (четырёхзначные числа в том же формате). В ответ первый игрок выдает фразу «n быков, m коров», где «быком» считается цифра из предложенного вари-анта, присутствующая в задуманном числе и стоящая на своем месте, а «коровой» - цифра, стоящая в другой позиции.
Так, если задумано число 5071, а предложенный вариант – 6012, ответ первого иг-рока «один бык, одна корова». Здесь «быком» считается цифра 0, а «коровой» - цифра 1.
Напишите программу, которая по задуманному числу и предложенному варианту второго игрока считает количество «быков» и «коров».
Входные данные находятся в текстовом файле BULLS.IN. Первая строка содержит последовательность из четырех цифр – задуманное число, во второй строке в том же фор-мате записан вариант ответа.
Выходные данные помещаются в текстовый файл BULLS.OUT. Единственная строка этого файла содержит два числа: количество «быков» и «коров».

Примеры входных данных Примеры выходных данных
5071 1 1
6012
4321
4321 4 0
1980
0879 0 3
1234
5678 0 0


Вторая задача.


Прижимистый дачник task code: GRATIS



Пенсионер Иван Иваныч вырастил на своей даче богатый урожай и упаковал его в N корзин. Вес i-й (1 ≤ i ≤ N) корзины равен Pi . Машины у Ивана Иваныча нет, но зато есть бесплатный сезонный билет на элек-тричку. Нанимать автомобиль для вывоза урожая Иван Иваныч не хочет – жалко денег... Вот и решил наш дачник потихоньку перевезти все свои кор-зины электричкой.
Согласно железнодорожным правилам, каждый пассажир имеет право бесплатно не более двух мест ручной клади суммарным весом не более Q. Платить за излишний багаж Иван Иваныч также не желает!
Определите минимальное число поездок, которые должен совершить дачник для перевозки всего урожая.
Входные данные находятся в файле GRATIS.IN. Первая строка файла содержит два целых числа – величины N и Q. Каждая из последующих N строк входного файла содержит одно целое число – величину Pi. Огра-ничения на данные: 1 ≤ N ≤ 100 000, 1 ≤ Pi, Q ≤ 10 000, Pi ≤ Q.
Выходные данные. В выходной файл GRATIS.OUT выведите искомое число поездок.

Пример входных данных Пример выходных данных
10 80 6
70
15
30
35
10
80
20
35
10
30

Для работы с текстовыми файлами необходимо:
1) подключить заголовочный файл <fstream>;
2) объявить входной и выходной потоки и связать их с файлами:
ifstream fin (”gratis.in”);
ofstream fout (”gratis.out”);
3) ввод-вывод выполнять с использованием этих потоков, например
fin >> N >> Q;
4) перед завершением работы программы закрыть файлы:
fin.close();
fout.close();


Как решения выглядят в с++???помогите пожалуйста!заранее, спасибо!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.11.2011, 22:25
Ответы с готовыми решениями:

Напишите программу, которая считает количество слов в файле
Напишите программу, которая считает количество слов в файле input.txt . Словом...

Определить количество быков, коров и телят для покупки исходя из их цены
Составить алгоритм решения задачи: сколько можно купить быков, коров и телят,...

Напишите программу, которая по введённому числу n проверяет является ли оно палиндромом
Доброе время суток. Прошу опытных программистов помочь с домашней работой....

Напишите программу, которая прибавляет 1 к целому числу N (длина числа N до 1000 знаков)
Задача в том , чтобы прибавить 1 к числу. попробовал сделать через строку, но...

Cколько можно купить быков, коров и телят на 100 рублей
Составить алгоритм решения задачи: сколько можно купить быков, коров и телят,...

5
Jupiter
Каратель
Эксперт С++
6569 / 3990 / 400
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
09.11.2011, 22:31 #2
Быки и коровы
1
Тина_Ливингстон
0 / 0 / 0
Регистрация: 01.11.2011
Сообщений: 59
11.11.2011, 14:18  [ТС] #3
спасибо за первую задачу...но,пожалуйста,помогите решить вторую задачу про дачника.
0
Тина_Ливингстон
0 / 0 / 0
Регистрация: 01.11.2011
Сообщений: 59
15.11.2011, 14:51  [ТС] #4
Люди, завтра нужно сдать вторую задачу! пожалуйста, помогите!
0
Тина_Ливингстон
0 / 0 / 0
Регистрация: 01.11.2011
Сообщений: 59
05.12.2011, 22:47  [ТС] #5
Вот код задач про Дачника!
Он работает на обычных тестах, но не правильно работает на больших числах. Подскажите, что может ьыть не так?
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
60
#include <iostream>
#include <fstream>
#include<algorithm>
using namespace std;
void main()
{
    setlocale(LC_ALL,".1251");
    int N,Q,k=0;
    ifstream fin ("GRATIS.IN");
    ofstream fout("GRATIS.OUT");
    fin>>N>>Q;
    if((N>=1)&&(N<=100000)&&(Q>=1)&&(Q<=10000))
    {
        int *a;
        a=new int [N];
        for(int i=0;i<N;i++)
        {
            fin>>a[i];
            if((a[i]>Q)||(a[i]<1))
                k++;
        }
 
        if(k==0)
        {
            reverse(a,a+N);
            //int temp;
            /*for(int i=0; i<N-1; i++)
            {
                for(int j=i+1; j<N; j++)
                    if(a[i]<a[j])
                    {
                        temp=a[i];
                        a[i]=a[j];
                        a[j]=temp;
                    }
            }*/
            int i=0;
            int j=N-1;
            k=0;
            while(i<j)
            {
                if((a[i]+a[j])<=Q)
                    j=j-1;
                i++;
                k++;
            }
            if (i==j)
                k++;
        }
 
                fout<<k;
        }
        else 
            fout<<"Вес одного из мешков не соответствует железнодорожным правилам";
 
    
 
    fin.close();
    fout.close();
}
0
MGchannel
0 / 0 / 1
Регистрация: 06.01.2014
Сообщений: 76
08.02.2014, 23:21 #6
C++
1
2
3
4
5
6
for(long i=0;i<N;i++)
        {
            fin>>a[i];
            if((a[i]>Q)||(a[i]<1))
                k++;
        }
Работает для больших чисел (ограничение-1999999+(размер типа long))
0
08.02.2014, 23:21
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.02.2014, 23:21

Сколько быков, коров и телят можно купить на 100 рублей?
1.Имеется 100 рублей. Сколько быков, коров и телят можно купить на все эти...

Напишите программу, которая выводит позиции чисел равных первому числу последовательности. Нумерация позиций начинается
На вход в первой строке подаётся натуральное число N (не более 10000). Далее,...

Определить, сколько можно купить быков, коров и телят, если известны цены
Сколько можно купить быков, коров и телят, если плата за быка 10 рублей, за...


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

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

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