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

Среди 13 монет есть одна отличающаяся по весу, за 3 взвешивания на чашечных весах найти ее - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ соединение двух массивов http://www.cyberforum.ru/cpp-beginners/thread293552.html
здравствуйте! есть задача: даны два неубывающих массива x и y. найти их соединение, то есть неубывающий массив z, содержащий их общие элементы, причем каждый элемент должен входить в массив z столько раз, сколько он входит в общей сложности в массивах x и y. написал код, вроде бы все правильно, но не работает :(: #include <stdio.h> #include <conio.h> #include <iostream.h> using namespace...
C++ Исключения:: вопрос Прошу консультации по теоретическому вопросу. Фрагмент кода #include <cstdlib> #include <iostream> #include <math.h> #include <time.h> using namespace std; #include <windows.h> http://www.cyberforum.ru/cpp-beginners/thread293544.html
C++ шестнадцатеричной системы в двоичную и наоборот.
Разработка программы перевода чисел из шестнадцатеричной системы в двоичную и наоборот.
С++ проверка аргументов C++
Подскажите код для проверки аргументов командной строки на входе программы.
C++ Функция с CharToOem не возвращает слово через return http://www.cyberforum.ru/cpp-beginners/thread293537.html
Здравствуйте! У меня есть такая: ф-ия char* rus3(char* c) { char buf; CharToOem(c,buf); return buf; }
C++ Преобразование string to char В общем никак не получается перегнать из строки в чар. Что надо: Имеется StringGrid и структура. Обьявлена структура как: struct Cities { char city,country; }; Далее подробнее

Показать сообщение отдельно
user-men
22 / 22 / 8
Регистрация: 17.02.2014
Сообщений: 303
03.07.2014, 23:48     Среди 13 монет есть одна отличающаяся по весу, за 3 взвешивания на чашечных весах найти ее
Вводи 12 цифр одинаковых а 1 отличное от других а дальше читай. если вы введете отрицательное число то оно будет по модулю
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
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
#include <iostream>
#include <conio.h>
#include <stdlib.h>
using namespace std;
 
void Entering_data(int *mas)
{
    int num1 = 0, num2 = 0 ,Sev_i;
    cout << "Enter the data ->";
    for (int i = 0; i < 13; i++)
    {
        cin >> mas[i];
        if (mas[i] == 0)
        {       
            cout << "Erorr! (!=0)";
            getch();
            exit(0);
        }
        if (i == 0)
            num1 = mas[i];
        if (i == 2)
            if (mas[0] != mas[2] && mas[1] == mas[2])
                num1 = num2, num2 = mas[2], Sev_i = i;
        if (num1 != mas[i])
            if (num2 == 0)
                num2 = mas[i], Sev_i = i;
            else
            {
                cout << "Erorr! Introduced three different numbers: "<<num1<<","<<num2<<","<<
                mas[i]<<" (We're introducing only two different)";
                getch();
                exit(0);
            }
    }
    if (num2 == 0)
    {
        system("cls");
        for (int i = 0; i < 13; i++)
            cout << mas[i] << " ";
        cout << endl;
        cout << "Erorr! All figures are identical (We're introducing only two different)";
        getch();
        exit(0);
    }
    if (num2 < num1)
        mas[Sev_i] = num1*abs(mas[Sev_i]);
    system("cls");
}
 
void Pid_PD(int *mas,int Num_Elm)
{
    int tum1 = 0, tum2 = 0;//The second weighing(2)
    for (int i = 0; i < 2; i++)
        tum1 += mas[i];
    for (int i = 2; i < 4; i++)
        tum2 += mas[i];
    if (tum1 == tum2)
    {
        cout << "Parts were equal (1 == 2)\n";
        cout << "The answer is two weighing thirteen coin wrong (! = 13) && weighing = 2";
    }
    else
        if (tum1 > tum2)
        {
            cout << "The first part appeared to be heavier (1 > 2)\n";
            if (mas[0] > mas[1])//Third weighing(3)
            {
                cout << "3) Again, divide into two chatyny coins and weigh, The first part is heavier (1 > 2)\n";
                cout << "Answer three weighing " << Num_Elm + 1 << " coin wrong (! = " << Num_Elm + 1 << ") && Three weighting";
            }
            else
            {
                cout << "3) Again, divide into two chatyny coins and weigh, The second part is heavier (1 < 2)\n";
                cout << "Answer three weighing " << Num_Elm + 2 << " coin wrong (! = " << Num_Elm + 2 << ") && Three weighting";
            }
        }
        else
        {
            cout << "The second part proved more difficult(1 < 2)\n";
            if (mas[2] > mas[3])//Third weighing(3)
            {
                cout << "3) Again, divide into two chatyny coins and weigh, The first part is heavier (1 > 2)\n";
                cout << "Answer three weighing " << Num_Elm + 3 << " coin wrong (! = " << Num_Elm + 3 << ") && Three weighting";
            }
            else
            {
                cout << "3) Again, divide into two chatyny coins and weigh, The second part is heavier (1 < 2)\n";
                cout << "Answer three weighing " << Num_Elm + 4 << " coin wrong (! = " << Num_Elm + 4 << ") && Three weighting";
            }
        }
}
 
void Processing_data(int *mas)
{
    cout << "Set aside thirteenth coin aside, while others divide into three parts\n"<<
        "1) Consider the first and second part";
    int tum1 = 0, tum2 = 0;//The first weighing(1)
    for (int i = 0; i < 4; i++)
        tum1 += mas[i];
    for (int i = 4; i < 8; i++)
        tum2 += mas[i];
    if (tum1 == tum2)//case 3
    {
        cout << ", Parts were equal (1 == 2)\n2) The third part will divide into two, and weigh them, ";
        Pid_PD(&mas[8], 8);
    }
    else
        if (tum1 > tum2)//case 1
        {
             cout << ", Part one of appeared to be heavier (1 > 2)\n2) The first part of section two, and weigh them,";
             Pid_PD(&mas[0], 0);
        }
        else//case 2
        {
            cout << ", Part two proved more difficult (1 < 2)\n2) The second part will divide into two, and weigh them, ";
            Pid_PD(&mas[4], 4);
        }
}
 
int main()
{
    int mas[13];
    Entering_data(&mas[0]);
    Processing_data(&mas[0]);
    getch();
    return 0;
}
 
Текущее время: 18:18. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru