Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   С/С++, C#, Delphi, .NET, Asm (https://forum.antichat.xyz/forumdisplay.php?f=24)
-   -   помогите составить алгоритм плиз (https://forum.antichat.xyz/showthread.php?t=197257)

kolobok2233 18.04.2010 18:42

помогите составить алгоритм плиз
 
Нужно найти среднее арифметическое 2 чисел X и Y при условии что нельзя использовать * / . А можно только +-><. Заранее спасибо!

Sunstrider 18.04.2010 18:43

тут с матемом трудно,я просил по дискриминантам не смогли иди на виноград там мну сделали

yaneblinchik 18.04.2010 18:46

X + Y - (X+Y) Если че то > или < . Блин в голову не лезет,уставший

kolobok2233 18.04.2010 19:17

да причем тут математика. c=(x+y)/2
тока нельзя деление использовать и умножение
сосотавить нада алгоритм

M_script_ 18.04.2010 19:22

Как-то так:
PHP код:

int xxx(int Xint Y)
{
    for(
int i 1Y; ++i)
        if(
Y
            return 
1;



BrainDeaD 18.04.2010 20:05

Цитата:

Сообщение от M_script_
Как-то так:
PHP код:

int xxx(int Xint Y)
{
    for(
int i 1Y; ++i)
        if(
Y
            return 
1;



чего-то я не понимаю. у меня так не получается.

вот моя версия:

Код:

do
{
      Y--;
      X++;
}
while (X<Y);
return X;

при условии X<Y (eсли на оборот, то просто меняем местами переменные)
и оба числа чётные или нечётные(если одно чётное, другое нет, то вычитаем из результата 0,5.)


Sunstrider 18.04.2010 20:08

эмм вроде ТС просил алгоритм(кубики)

BrainDeaD 18.04.2010 20:12

Цитата:

Сообщение от Sunstrider
эмм вроде ТС просил алгоритм(кубики)

а почему не кружочки?
харе флудить иди читай http://ru.wikipedia.org/wiki/Алгоритм

Sunstrider 18.04.2010 20:15

Цитата:

Сообщение от BrainDeaD
а почему не кружочки?
харе флудить иди читай http://ru.wikipedia.org/wiki/Алгоритм

не сорь,прост на икт у нас там тип начала и тд

kolobok2233 18.04.2010 22:01

это блок-схема называется

Sunstrider 18.04.2010 22:02

Цитата:

Сообщение от kolobok2233
это блок-схема называется

Упс точно,извиняюсь

Ra$cal 19.04.2010 01:52

int x = 13, y = 14;
int z = (x + y ) >> 1;

хз можно ли сдвиги юзать.


Код:

#include <iostream>
#include <utility>
int mean (int x, int y);

int main(){

        for(int i = 0; i < 1000; i++){
                int x = rand(), y = rand();
                int result = mean(x, y);
                int expected = (x + y) / 2;
                std::cout << "mean(" << x << ", " << y << ") = " << result << " Expected = " << expected << std::endl;
                if( result != expected){
                        std::cout << "error: x = " << x << " y = " << y << " result = " << mean(x,y) << std::endl;
                }
        }
        system("pause");
}

int mean (int x, int y){

        if(x > y){
                std::swap(x, y);
        }

        int i = 0;
        for(; x + i <= y - i; i++){
                if(x + i == y - i){
                        return x + i;
                }
        }

        // для нечетных сумм
        return x + i - 1;
}

или так. забавная задачка =)


Время: 16:34