Другие языки программирования и технологии
как задать переменной её нечётность??
мне надо найти сумму элементов массива, которые нечётные. самы элементы. так как мне для переменной задать: она нечётная??? или чётная, тогда нечетная, это чётная -1. помогите плиз!
язык?
Odd() - от нее пляши=)
Про четность целых чисел замечу что она определяется младшим битом ( веса разрядов ...8421, только 1 - нечетный, то есть когда выставлен этот бит, то целое число сразу нечетное ), то есть вы однозначно определяете четность следующий инструкцией ( ( a and $01 ) = 1 ) где a- исследуемая переменная, данное действие более быстрое чем ( ( a mod 2 ) = 1 ) и чисто технически будет быстрее функции not even(a) или odd(a), так как нет ( push a; call odd; pop res )
Операция and - однотактная, тогда как деление это многократное вычитание (то есть преобразование в обратный код: инверсия + 1).
тогда ваш код, где a - имя массива, если у вас не определены функции Hight() и Low(), для определения самого младшего и самого старшего индекса в массиве, то просто впишите их, I-индексная переменная, Sum-переменная накопитель
{сбрасываем сумму}
Sum := 0;
{перебираем элементы массива и добавляем к сумме те из них, которые нечетные}
for I := Low( a ) to Hight( a ) do
if ( ( a[ I ] and $01 ) = 1 ) then
Inc( Sum, a[ I ] );
Inc() - технически быстрее чем Sum := Sum + a[ I ], однако работает это только для целых чисел, так как числа с плавающей точкой четными и нечетными не бывают, то это вам подходит.
Операция and - однотактная, тогда как деление это многократное вычитание (то есть преобразование в обратный код: инверсия + 1).
тогда ваш код, где a - имя массива, если у вас не определены функции Hight() и Low(), для определения самого младшего и самого старшего индекса в массиве, то просто впишите их, I-индексная переменная, Sum-переменная накопитель
{сбрасываем сумму}
Sum := 0;
{перебираем элементы массива и добавляем к сумме те из них, которые нечетные}
for I := Low( a ) to Hight( a ) do
if ( ( a[ I ] and $01 ) = 1 ) then
Inc( Sum, a[ I ] );
Inc() - технически быстрее чем Sum := Sum + a[ I ], однако работает это только для целых чисел, так как числа с плавающей точкой четными и нечетными не бывают, то это вам подходит.
Вообще-то, в Паскале есть такая функция Odd(x: Longint): Boolean;
Если х - нечетное, то функция возвращает True, в противном случае - False.
т. е. if Odd(x) then...
Зачем выдумывать велосипед?
Если х - нечетное, то функция возвращает True, в противном случае - False.
т. е. if Odd(x) then...
Зачем выдумывать велосипед?
если qbasic:
IF x MOD 2 <> 0 then (т. е. остаток от деления на 2 не равен 0)
вычисляй сумму
ELSE
print "x-chetnoe"
end if
*х - твоя переменная
IF x MOD 2 <> 0 then (т. е. остаток от деления на 2 не равен 0)
вычисляй сумму
ELSE
print "x-chetnoe"
end if
*х - твоя переменная
Просматриваешь массив от начала до конца. Делишь каждый элемент на 2 с остатком. Если остаток =1, то складываешь его с предыдущими. Вот так на псевдокоде:
sum=0
DO(i=1,2,...N)
if a [ i ] mod2 == 1 then sum=sum+a [ i ]
i=i+1
OD
sum=0
DO(i=1,2,...N)
if a [ i ] mod2 == 1 then sum=sum+a [ i ]
i=i+1
OD
Ну можешь попробовать делением на два, и если остается остаток, то число нечетное.
Четность определяем как в начальной школе:
если делится на 2 без остатка, т. е. остаток=0, то число - четное,
если делится на 2 с остатком, т. е. остаток=1, то число - нечетное.
На Паскале в цикле проверяй каждый элемент массива:
***
Sum:=0;
For i:=1 to N do
If X mod 2 =1 Then Sum:=Sum+X;
***
Остальное допиши сам. Осталось только оформить задачку.
Дерзай!
если делится на 2 без остатка, т. е. остаток=0, то число - четное,
если делится на 2 с остатком, т. е. остаток=1, то число - нечетное.
На Паскале в цикле проверяй каждый элемент массива:
***
Sum:=0;
For i:=1 to N do
If X mod 2 =1 Then Sum:=Sum+X;
***
Остальное допиши сам. Осталось только оформить задачку.
Дерзай!
Смотрите остаток от деления на 2. Если он равен 0, то четное, если больше 0, то нечетное.
Похожие вопросы
- Как задать два разных имени одной переменной в С++ ?(Синонимы имён переменных)
- С# - нужно сделать так, чтобы консоль читала слова, как переменные, а не просто слова...
- Как сложить переменную ? Delphi 7 Что никто не знает ответа что ли ?Н
- Снова Паскаль) ) Переменные и занимаемая ими память
- Указатели это переменные в которых содержатся адреса других переменных?
- С++, объект класса, экземпляр класса, какой тип переменной хранит экземпляр класса? (экземпляр это что? Word, lpstr..?)
- Как вернуть значение переменной присвоенное ранее? Pascal
- [C++] Почему не рекомендуют использовать глобальные переменные?
- Как определить четность или нечетность в массиве на С++??
- В каких случаях в Си надо использовать переменные static, а не глобальные переменные?