Системное администрирование
Задача на Паскале
Напишите программу которая будет читать натуральное число и определять каких цифр в числе больше - четных или нечетных (Pascal)
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.
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 без остатка, поэтому и чётное, а то, что ноль это якобы "не четное и не нечетное" - просто чушь собачья!На делфи примерно так.. на паскале где-то так же.. не проверял.. до ума сам доведешь
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:
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
Похожие вопросы
- Задача на паскаль
- Задача на Паскаль
- Помогите решить задачи на паскале !
- Помогите! Информатик 8 класс Программирование на Паскале
- Вопрос: на основании чего вы будете решать - делать эту задачу вручную или попытаться автоматизировать решение задачи?
- Помогите с задачей python
- Программный код. Паскаль
- Господа ИТшники! Часто ли вам приходится работать в условиях, когда вас передергивают с одной задачи на другую?
- Помогите решить задачу на Python.
- Решите задачу про прогрессивный налог python