Системное администрирование

Задача на Паскале

Напишите программу которая будет читать натуральное число и определять каких цифр в числе больше - четных или нечетных (Pascal)
Vyacheslav Egorov
Vyacheslav Egorov
391
 var
s: string;
i, n: integer;
begin
read(s);
for i := 1 to length(s) do
if s[i] in ['0', '2', '4', '6', '8'] then inc(n) else dec(n);
case ord(n > 0) - ord(n < 0) of
-1: write('больше нечётных');
0: write('поровну');
1: write('больше чётных')
end
end.
Владимир Белокобыльский
Владимир Белокобыльский
91 060
Лучший ответ
Vyacheslav Egorov Есть ошибка: 0 и не четное, и не нечетное, так что его не надо учитывать
 var n: int64; 
odds, evens: integer;
begin
write('n: ');
readln(n);
odds := 0;
evens := 0;
begin
while n>0 do
begin
if odd(n mod 10) then odds := odds + 1
else evens := evens + 1;
n := n div 10
end;
writeln(evens, ' evens, ', odds, ' odds');
if odds>evens then writeln('odds > evens')
else if odds=evens then writeln('odds = evens')
else writeln('evens > odds')
end
end.
Кстати, ноль делится на 2 без остатка, поэтому и чётное, а то, что ноль это якобы "не четное и не нечетное" - просто чушь собачья!
Борис Алексеев
Борис Алексеев
66 572
На делфи примерно так.. на паскале где-то так же.. не проверял.. до ума сам доведешь

Var
A: integer; // ваше число
B: integer; // счетчик в цикле for
С: String; // строковое представление вашего числа
D, d1:integer;
Chot, nechet: integer; // счетчики четных и нечетных цифр

Begin
Chot:=0; // обнуляем счетчики
Nechet:=0;
C:=intToStr(a); // переводим число в строку, в строке легче цифры выделять
For b:=1 to length(c); // идем по всем цифрам
Begin
D:=StrToInt(c[b]); переводим цифру обратно в число, здесь легче считать
D1:=d div 2; // делим на 2. div - деление без дробной части, только целое число получается без округления
If (d1*2)=d then Inc(chot) else Inc(nechet); // если обратное действие, то бишь умножение, сравнялось с первоначальной цифрой, то значит цифра четная
End;
End:
Vyacheslav Egorov StrToInt на паскале не работает, IntToStr почему-то работает, а StrToInt нет
Дмитрий Голиков StrToInt - Это перевод строки в тип integer.. а вторая наоборот
Дмитрий Голиков На паскале это val и Str