С Новым годом! Форум программистов, компьютерный форум, киберфорум
Turbo Pascal
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.72/88: Рейтинг темы: голосов - 88, средняя оценка - 4.72
1 / 1 / 2
Регистрация: 21.12.2015
Сообщений: 25
1

Верно ли, что введённое число содержит по крайней мере две одинаковых цифры

01.03.2017, 15:25. Показов 16543. Ответов 5
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Условие:
Напишите программу, которая определяет, верно ли, что введённое число содержит по крайней мере две одинаковых цифры, возможно, не стоящие рядом (как, например, 212).

Входные данные:
Входная строка содержит одно натуральное число.

Выходные данные:
Программа должна вывести слово 'YES', если в числе есть две одинаковые цифры, и слово 'NO', если такой пары цифр нет.

Примеры:
Кликните здесь для просмотра всего текста

входные данные:
212
выходные данные:
YES

входные данные:
12345
выходные данные:
NO



Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
program similar;
var a,c,d,c1,c2,c3,d1,d2,d3,z:integer;
begin
readln(a);
z:=0;
  if (a>0) and (a<=99) then
  c:=a mod 10; d:=a div 10;
    if c=d
    then z:=1;
   
   if (a>=100) and (a<=999) then
  c:=a mod 10; d:=a div 10;
  c1:=d mod 10; d1:=d div 10;
   
   if
      (c=c1) or (c=d1) or
      (d1=c1)
   
    then z:=2;
   
     if (a>=1000) and (a<=9999) then
  c:=a mod 10; d:=a div 10;
  c1:=d mod 10; d1:=d div 10;
  c2:=d1 mod 10; d2:=d1 div 10;
 
 
   if
      (c=c1) or (c1=c2) or (c1=d2) or (c=c2) or (c=d2) or
      (c2=d2)
 
   then z:=3;
 
    if (a>=10000) and (a<=99999) then
  c:=a mod 10; d:=a div 10;
  c1:=d mod 10; d1:=d div 10;
  c2:=d1 mod 10; d2:=d1 div 10;
  c3:=d2 mod 10;  d3:=d2 div 10;
 
 
   
     if (c=c1) or (c=c2) or (c=c3) or (c=d3) or
        (c1=c2) or (c1=c3) or (c1=d3) or
        (c2=c3) or (c2=d3) or
        (c3=d3)
    then z:=4;
 
   
  if (z=1) or (z=2) or (z=3) or (z=4) then writeln ('YES') else writeln ('NO');
end.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
01.03.2017, 15:25
Ответы с готовыми решениями:

Определить, верно ли, что введённое число содержит две одинаковых цифры, стоящие рядом
Напишите программу, которая определяет, верно ли, что введённое число содержит две одинаковых...

Проверить, содержит ли введённое число по крайней мере две одинаковых цифры
Напишите программу, которая определяет, верно ли, что введённое число содержит по крайней мере две...

Верно ли, что число содержит три одинаковых цифры
Надо написать программу к этой задаче : Дано натурально число n(n &lt;(или равно)9999).Учитывая все...

Дано число n. Верно ли, что это число содержит ровно 3 одинаковых цифры
Помогите пожалуйста с решением очень надо.))) С++ Добавлено через 44 минуты Парни выручайте......

5
1755 / 1347 / 1407
Регистрация: 28.10.2016
Сообщений: 4,267
01.03.2017, 16:03 2
Вот так попроще будет
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
uses crt;
var
s:string;
i,j,x:integer;
begin
  clrscr;
  x:=0;
  writeln('Chislo:');
  readln(s);
  for i:=1 to length(s) do
    for j:=1 to length(s) do
      if (s[i]=s[j]) and (i<>j) then
        x:=x+1;
  if x>0 then writeln('YES') else writeln('NO');
  readln;
end.
0
1 / 1 / 2
Регистрация: 21.12.2015
Сообщений: 25
01.03.2017, 16:31  [ТС] 3
Объясните?
0
1755 / 1347 / 1407
Регистрация: 28.10.2016
Сообщений: 4,267
01.03.2017, 20:48 4
Лучший ответ Сообщение было отмечено FabioPicasso как решение

Решение

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
uses crt;
var
s:string;
i,j,x:integer;
begin
  clrscr;
  x:=0; //счётчик повторяющихся цифр
  writeln('Chislo:');
  readln(s); //вводим число
  for i:=1 to length(s) do // берём цифру для проверки
    for j:=1 to length(s) do // цикл для сравнения выбранной цифры с остальными цифрами числа
      if (s[i]=s[j]) and (i<>j) then //если цифры равны и их индексы различны (если не проверяет само себя) то
        x:=x+1;//фиксируем совпадение
  if x>0 then writeln('YES') else writeln('NO');//если совпадения были, то выводим ДА, иначе НЕТ
  readln;
end.
1
Модератор
Эксперт Pascal/DelphiЭксперт NIX
7795 / 4618 / 2830
Регистрация: 22.11.2013
Сообщений: 13,114
Записей в блоге: 1
01.03.2017, 20:49 5
Лучший ответ Сообщение было отмечено ZX Spectrum-128 как решение

Решение

Hitoku,
Pascal
10
11
  for i:=1 to length(s) do
    for j:=1 to length(s) do
Квадратичная сложность. Но зачем?

То же самое:
Pascal
1
2
3
4
5
6
7
8
var
  n: array ['0'..'9'] of Integer;
  c: Char;
  b: Boolean;
...
  for i:=1 to Length(s) do if s[i] in ['0'..'9'] then Inc(n[s[i]]);
  b:=False; for c:='0' to '9' do b:=b or (n[c]>1);
  if b then WriteLn('YES') else WriteLn('NO');
На множествах:
Pascal
1
2
3
4
5
6
var
  p, q: set of '0'..'9';
...
  for i:=1 to Length(s) do
    if s[i] in p then Include(q,s[i]) else Include[p,s[i]];
  if p*q<>[] then WriteLn('YES') else WriteLn('NO');
На числовой переменной аналогично:
Pascal
1
2
3
4
5
6
7
8
9
var
  n: array [0..9] of Integer;
  p, q: set of 0..9;
...
  repeat
    d:=a mod 10; a:=a div 10;
    // используем d вместо s[i]
  until a=0;
...
0
1755 / 1347 / 1407
Регистрация: 28.10.2016
Сообщений: 4,267
01.03.2017, 20:52 6
Цитата Сообщение от bormant Посмотреть сообщение
Квадратичная сложность. Но зачем?
bormant, ну тут кому как в голову придёт... мне пришло вот так
0
01.03.2017, 20:52
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
01.03.2017, 20:52
Помогаю со студенческими работами здесь

Верно ли, что это число содержит ровно три одинаковых цифры
Помогите сделать .Дано натуральное число n (n&lt;=9999). Верно ли, что это число содержит ровно...

Определить что число содержит две одинаковых цифры
Напишите программу которая определяет верно что введенное число содержит две одинаковых цифры что...

Дано натуральное число <= 9999; верно ли, что оно содержит три одинаковых цифры?
дано натуральное число &lt;=9999 верно ли что оно содержит три одинаковых цифры как например 6676,...

Выяснить, верно ли, что данное четырехзначное число содержит ровно три одинаковых цифры
дано четырехзначное целое число. Выяснить,верно ли,что это число содержит ровно три одинаковых...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru