Форум программистов, компьютерный форум, киберфорум
Наши страницы
PascalABC.NET
Войти
Регистрация
Восстановить пароль
 
Reflect
0 / 0 / 0
Регистрация: 16.02.2017
Сообщений: 14
1

Как сделать, чтобы выводило количество нулей числа, введённого с клавиатуры

27.02.2017, 17:51. Просмотров 281. Ответов 2
Метки нет (Все метки)

Как сделать, чтобы выводило количество нулей числа, введённого с клавиатуры, а не того что в скобках? Pascal

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
program mtr;
var n: longint;
function NumberOfZeroes(n : longint) : integer;
var k : integer;
begin  
  k := 0;  
  while n <> 0 do
  begin
    if (n mod 10) = 0 then inc(k);
    n := n div 10
  end;
  NumberOfZeroes := k
end;
begin
  writeln(NumberOfZeroes(1000))
end.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.02.2017, 17:51
Ответы с готовыми решениями:

Как сделать чтобы выводило все числа?
Паскаль выдаёт такой ответ: 1.03590220394703E+25 А мне нужен такой: 10359022039470231387111424...

помогите сделать цикл,чтобы выводило ряд Фибоначии до определенного числа N которое я ввела с клавиатуры.
есть у меня код рекурсии по нахождению числа фибоначчи за номером. помогите сделать цикл,чтобы...

Как в Delphi 7 сделать чтобы рандомом выводило определенные числа?
Как в Delphi 7 сделать чтобы рандомом выводило определенные числа?

Нужно в Delphi 7 сделать чтобы в ShowMessage выводило три рандомных числа от 0 до 9
Нужно в Delphi 7 сделать чтобы в ShowMessage выводило три рандомных числа от 0 до 9

Как сделать чтобы ответ выводило в Chart?
нужно после прохождения всего теста чтобы выводило результат в диаграмму.Код теста в архиве

2
ZX Spectrum-128
Модератор
Эксперт Pascal/Delphi
4689 / 3362 / 3985
Регистрация: 05.06.2014
Сообщений: 16,795
27.02.2017, 18:30 2
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
program mtr;
 
var
  n: longint;
 
function NumberOfZeroes(n: longint): integer;
var
  k: integer;
begin
  k := 0;  
  while n <> 0 do
  begin
    if (n mod 10) = 0 then 
      inc(k);
    n := n div 10
  end;
  NumberOfZeroes := k
end;
 
begin
  readln(n);
  writeln(NumberOfZeroes(n));
end.
0
JuriiMW
2256 / 1249 / 1677
Регистрация: 10.12.2014
Сообщений: 4,901
28.02.2017, 05:55 3
Избавляемся от лишних переменных:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
function NumberOfZeroes(n : integer) : integer;
begin  
  Result := 0;
  while n <> 0 do
    begin
      if n mod 10 = 0 then Result += 1;
      n := n div 10;
    end;
end;
 
begin
  writeln(NumberOfZeroes(ReadLnInteger));
end.
Добавлено через 1 минуту
Разворачиваем функцию в рекурсию:
Pascal
1
2
3
4
5
function NumberOfZeroes(n : integer) : integer := n <> 0 ? (n mod 10 = 0 ? 1 : 0) + NumberOfZeroes(n div 10) : 0;
 
begin
  writeln(NumberOfZeroes(ReadLnInteger));
end.
Добавлено через 1 минуту
Используем строки:
Pascal
1
2
3
4
5
function NumberOfZeroes(n : integer) : integer := IntToStr(n).Where(c->c='0').Count;
 
begin
  writeln(NumberOfZeroes(ReadLnInteger));
end.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.02.2017, 05:55

Как сделать чтобы в конце теста выводило оценку?
Делаю тест, количество правильных и неправильных ответов выводит, мне еще нужно чтобы ставило...

Как сделать чтобы выводило каждый шаг сортировки?
namespace WindowsFormsApp1 { public partial class Form1 : Form { int mas = new...

Как сделать чтобы ответ выводило таблицей по 10 чисел?
Как сделать чтобы ответ выводило таблицей по 10 чисел? Ниже написан код программы #include...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru