Технический форум

Технический форум (http://www.tehnari.ru/)
-   Delphi, Kylix and Pascal (http://www.tehnari.ru/f43/)
-   -   Как посчитать количество цифр 5 в числе? (http://www.tehnari.ru/f43/t49653/)

@lis@ 30.03.2011 18:44

Как посчитать количество цифр 5 в числе?
 
Помогите пожалуйста решить задачу.
Я написала программу, но она не работает:
var a,x,y,z,m:integer;
begin
write ('Введите число: ');
read(a);
x:=a;
z:=0;
repeat
y := x mod 10;
if y=5 then
z:=z+1;
m:=y div 10
until m=0;
write('Количество цифр 5: ', z)
end.
Какое число бы я не вводила, получается 0.

Серёга 30.03.2011 19:33

Цитата:

Сообщение от @lis@ (Сообщение 494879)
z:=z+1;

не уверен, что правильно, но попробуйте изменить так :

var a,x,y,z,m,b:integer;
begin
write ('Введите число: ');
read(a);
x:=a;
z:=0;
repeat
y := x mod 10;
if y=5 then
b:=z+1;
m:=y div 10
until m=0;
write('Количество цифр 5: ', b)
end.

мне показалось, что z ссылается на саму себя

kreol 30.03.2011 20:26

Код:

var a,x,y,z,m:integer;
begin
  write ('Введите число: ');
  read(a);
  x:=a;
  z:=0;
    repeat
      x:= x div 10;
    if x=5 then
      z:=z+1;
    x:=x mod 10
    until x=0;
    write('Количество цифр 5: ', z)
end.

вроде так. надо проверить...

@lis@ 30.03.2011 20:37

Попробовала оба варианта, всё также получается в ответе 0

kreol 30.03.2011 20:44

перепутал div и mod ...

Vladimir_S 30.03.2011 21:11

Ну, коллеги - хвостом вас по голове - развели черт-те что на пустом месте.
Код:

var
 a:LongInt;
 z:Byte;
begin
 write ('Введите число: ');
 readln(a);
 z:=0;
 repeat
  if (a mod 10)=5 then z:=z+1;
  a:=a div 10
 until a=0;
 write('Количество цифр 5: ', z);
 readln;
end.

И всего делов-то!

@lis@ 30.03.2011 22:37

А нельзя как-нибудь заменить LongInt и Byte? (нам можно только integer использовать)

Vladimir_S 30.03.2011 22:43

Цитата:

Сообщение от @lis@ (Сообщение 495040)
А нельзя как-нибудь заменить LongInt и Byte? (нам можно только integer использовать)

Ну так на Integer обе переменных и замените! Просто диапазон получается уж очень куцый - всего до 32000. Хотелось числа подлиннее вводить. Но нельзя - значит нельзя!

@lis@ 31.03.2011 17:23

Спасибо большое, всё работает!


Часовой пояс GMT +4, время: 12:50.

Powered by vBulletin® Version 4.5.3
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.