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

Определить фальшивую монету за заданое число взвешиваний среди указанного количества золотых монет - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Сетевая задача (перевозка грузов) http://www.cyberforum.ru/cpp-beginners/thread921216.html
Формулировка задания.Требуется найти оптимальный план перевозок некоторого продукта от заданного множество производителей к множеству потребителей:производственные возможности i-го производителя...
C++ Найти мосты графа Помогите, пожалуйста. В чем ошибка? http://www.e-olimp.com.ua/problems/1943 - условие #include <stdio.h> #include <iostream> #include <vector> #include <set> #include <algorithm> using... http://www.cyberforum.ru/cpp-beginners/thread921196.html
Запись динамического массива в файл (не правильно выводит данные) C++
Выделяю память под массив, заполняю его числами. int *mem_arr; int i; int n = 50; mem_arr = (int *)malloc(n*sizeof(int)); for(int i=0;i<6;i++) { printf("x=",i);
C++ Написать собственную функцию вычисления длины строки,перевода всех введенных букв в заглавные
Написать собственную функцию вычисления длины строки,перевода всех введенных букв в заглавные.Продемонстрировать работу функции,введя несколько строк.
C++ Можно ли прервать цепочку наследования? http://www.cyberforum.ru/cpp-beginners/thread921178.html
например есть три класса, A, B и C. Класс "А" - базовый, "B" наследуется от "A", "C" наследуется от "B", как бы получается цепочка наследования A->B->C. Вопрос: можно ли сделать так, чтоб класс B...
C++ Как создать статическую библиотеку с расширением .lib в MinGw? Зачем это надо? - хочу скомпилировать библиотеку в MinGw и подключить к с++builder. Возможно ли это? а может, если я по-варварски возьму и перебью расширение .a на .lib будет работать? а может... подробнее

Показать сообщение отдельно
Мимино
180 / 151 / 5
Регистрация: 22.05.2013
Сообщений: 435
Записей в блоге: 1
11.07.2013, 01:34
Как то так
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
#include <iostream>
#include <stdlib.h>
#include <time.h>
using namespace std;
 
int isLighter(int [], int [], int);
 
int main()
{
    setlocale(LC_ALL, "Russian");
    int arr[25];
    int weighting, weighting2, weighting3, index;
 
    srand(time(NULL));
    
    for (int i = 0; i < 25; i++)
        arr[i] = 1;
    arr[rand() % 25] = 0;
 
    for (int i = 0; i < 25; i++)
    {
        if (i > 0 && i % 5 == 0)
            cout << endl;
        cout << arr[i] << " ";
    }
    cout << endl;
    // 1-е взвешивание
    weighting = isLighter(arr, &arr[9], 9);
 
    // 2-е взвешивание
    switch(weighting)
    {
        case 1:
            weighting2 = isLighter(arr, &arr[3], 3);
            index = 8;
            break;
        case 2:
            weighting2 = isLighter(&arr[9], &arr[12], 3);
            index = 17;
            break;
        case 3:
            weighting2 = isLighter(&arr[18], &arr[21], 3);
            index = 24;
            break;
    }
 
    // 3-е взвешивание
    switch(index)
    {
        case 8:
            if (weighting2 == 1){
                weighting3 = isLighter(arr, &arr[1], 1);
                index = 2; }
            if (weighting2 == 2){
                weighting3 = isLighter(&arr[3], &arr[4], 1);
                index = 5; }
            if (weighting2 == 3){
                weighting3 = isLighter(&arr[6], &arr[7], 1);
                index = 8; }
            break;
 
        case 17:
            if (weighting2 == 1){
                weighting3 = isLighter(&arr[9], &arr[10], 1);
                index = 11; }
            if (weighting2 == 2){
                weighting3 = isLighter(&arr[12], &arr[13], 1);
                index = 14; }
            if (weighting2 == 3){
                weighting3 = isLighter(&arr[15], &arr[16], 1);
                index = 17; }
            break;
 
        case 24:
            if (weighting2 == 1){
                weighting3 = isLighter(&arr[18], &arr[19], 1);
                index = 20; }
            if (weighting2 == 2){
                weighting3 = isLighter(&arr[21], &arr[22], 1);
                index = 23; }
            if (weighting2 == 3){
                weighting3 = isLighter(&arr[24], &arr[24], 1);
                index = 24; }
            break;
    }
 
    cout << endl << "Самая легкая монета(0-24): " << (index - 3 + weighting3) << endl; 
 
    system("pause");
    return 0;
}
 
 
int isLighter(int a1[], int a2[], int m)
{
    int sum1 = 0, sum2 = 0;
 
    for (int i = 0; i < m; i++)
    {
        sum1 += a1[i];
        sum2 += a2[i];
    }
 
    if (sum1 < sum2)
        return 1;
    if (sum1 > sum2)
        return 2;
    return 3;
}
Добавлено через 1 минуту
Цитата Сообщение от Denisqwwq Посмотреть сообщение
Код для душевно больных:

Не по теме:



Добавлено через 16 минут

Не по теме:

Denisqwwq,
Это определенно мне приснится сегодня ночью

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