Дано натуральное число:
1)найти количество четных цифр числа;
2)верно ли, что данная цифра А встречается в числе более двух раз ( А вводится с клавиатуры)?
var c, s, n: integer; x,d :longint;
begin
writeln('введите x');
readln (x);
d:=x;
n:=0;
while x>0 do
begin
c:= x mod 10;
if c mod 2 =0 then n:= n+1;
x:= x div 10;
end;
writeln ('Четных цифр в числе ',d,' = ', n );
end.
Я написал для 1 ый а как для 2 ой подскажите плиз, вставьте в этот прогр код что добавить надо, а то не получается)
Другие языки программирования и технологии
Ребят помогите дописать прогу в паскале абс
Мб тебе легче будет сделать это через строку? Ну, с функциями lenght() и т. д.
Бахытжан Бегимбетов
Ну тип мы не прошли это еще)
var a, c, x, k: longInt;
begin
write ('x = ');
readln(x);
write ('введите цифру A = ');
readln(a );
k:=0;
c:=0;
while x > 0 do
begin
if x mod 10 = a then k:=k+1;
if x mod 2 = 0 then c:=c+1;
x:=x div 10;
end;
writeln ('Количество четных цифр числа = ', c);
writeln ('Цифра ',a,' встречается более 2 раз = ', k > 2 )
end.
begin
write ('x = ');
readln(x);
write ('введите цифру A = ');
readln(a );
k:=0;
c:=0;
while x > 0 do
begin
if x mod 10 = a then k:=k+1;
if x mod 2 = 0 then c:=c+1;
x:=x div 10;
end;
writeln ('Количество четных цифр числа = ', c);
writeln ('Цифра ',a,' встречается более 2 раз = ', k > 2 )
end.
var
number, digitS: string;
i, evenCnt, digitCnt: integer;
digit, tmp: byte;
begin
evenCnt := 0; digitCnt := 0; i := 1;
write('Type the number: '); readln(number);
write('Type digit A: '); readln(digitS); digit := Ord(digitS[1]) - 48;
if (digitS.Length > 1) or (digit > 9) or (digit < 0) then begin writeln('Invalid digit!'); exit; end;
if (number[i] = '+') or (number[i] = '-') then i := 2;
for i := i to number.Length do
begin
tmp := Ord(number[i]) - 48;
if (tmp > 9) or (tmp < 0) then begin writeln('Invalid number!'); exit; end;
if ((tmp mod 2) = 0) then evenCnt := evenCnt + 1;
if (tmp = digit) then digitCnt := digitCnt + 1;
end;
writeln('Even digits count: ', evenCnt);
writeln('Desired digit is contained more than two times is ', (digitCnt > 2).ToString());
end.
потрольте препода этим) (+ оно быстрее, чем делить кучу раз и не валится при вводе xy...z?)
если модить ваш вариант, то заведите переменные счетчика и цифры (Integer) спросите после ввода числа ещё и цифру, проверьте что она не больше 9 и не меньше нуля, внутри while перед div воткните if со сравнением введеной цифры и "c" и увеличением счетчика на один если true, вывод такой же как в коде выше
вариант с replace тоже можно использовать и смотреть на разницу в длинне, но это ещё один цикл (внутри replace)
number, digitS: string;
i, evenCnt, digitCnt: integer;
digit, tmp: byte;
begin
evenCnt := 0; digitCnt := 0; i := 1;
write('Type the number: '); readln(number);
write('Type digit A: '); readln(digitS); digit := Ord(digitS[1]) - 48;
if (digitS.Length > 1) or (digit > 9) or (digit < 0) then begin writeln('Invalid digit!'); exit; end;
if (number[i] = '+') or (number[i] = '-') then i := 2;
for i := i to number.Length do
begin
tmp := Ord(number[i]) - 48;
if (tmp > 9) or (tmp < 0) then begin writeln('Invalid number!'); exit; end;
if ((tmp mod 2) = 0) then evenCnt := evenCnt + 1;
if (tmp = digit) then digitCnt := digitCnt + 1;
end;
writeln('Even digits count: ', evenCnt);
writeln('Desired digit is contained more than two times is ', (digitCnt > 2).ToString());
end.
потрольте препода этим) (+ оно быстрее, чем делить кучу раз и не валится при вводе xy...z?)
если модить ваш вариант, то заведите переменные счетчика и цифры (Integer) спросите после ввода числа ещё и цифру, проверьте что она не больше 9 и не меньше нуля, внутри while перед div воткните if со сравнением введеной цифры и "c" и увеличением счетчика на один если true, вывод такой же как в коде выше
вариант с replace тоже можно использовать и смотреть на разницу в длинне, но это ещё один цикл (внутри replace)
Бахытжан Бегимбетов
Можешь помочь ?
Похожие вопросы
- Помогите дописать прогу на паскале
- Помогите написать прогу на паскале
- помогите составить прогу в паскале
- СРОЧНО ПОМОГИТЕ!!! Напишите прогу на паскале
- Помогите с задачей в паскале абс
- Помогите написать прогу на Паскале, экзамен горит, очень нужно..
- Помогите написать прогу на паскале!
- Помогите составить прогу в паскале: А в степени N, чтобы высчитывала ответ при вводе числа и её степени.Заранее спасиб
- люди помогите написать прогу в паскале чтоб она запрашивала число и потом писала простое оно или нет, всю голову сломал
- помогите написать прогу в паскале срочно!!