11 / 11 / 2
Регистрация: 01.10.2010
Сообщений: 139
1

Верно ли, что это число содержит ровно три одинаковые цифры?

29.10.2010, 14:33. Показов 10080. Ответов 14
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Дано натуральное число n (n ≤ 9999).
Верно ли, что это число содержит ровно три одинаковые цифры, как, например, числа 6676, 4544, 0006 и т.д.?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
29.10.2010, 14:33
Ответы с готовыми решениями:

Верно ли, что это число содержит ровно три одинаковые цифры?
Дано натуральное число n (n ≤ 9999). Верно ли, что это число содержит ровно три одинаковые цифры,...

Верно ли, что это цисло содержит ровно три одинаковые цифры
Дано натуральное число n (n ≤ 9999).Верно ли, что это цисло содержит ровно три одинаковые цифры,...

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

Дано натуральное n-значное число P. Верно ли что число содержит три одинаковые цифры.
Люди помогите - нужно програмку написать с помощью процедур и функций - собственно вот: Дано...

14
AF
49 / 48 / 21
Регистрация: 06.10.2010
Сообщений: 115
29.10.2010, 14:50 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
24
25
26
27
28
29
30
31
32
33
34
35
VAR
  s, TempS: STRING;
  i: BYTE;
  Ch: STRING[1];
  n: INTEGER;
  Exp: BOOLEAN;
 
BEGIN
  WRITE('n=');
  READLN(n);
  
  {Ïåðåâîäèì ÷èñëî â ñòðîêó[4] ñ ïðåäøåñòâóþùèìè íóëÿìè}
  s := '';
  Str(n DIV 1000, Ch);
  s := s + Ch;
  Str(n DIV 100 MOD 10, Ch);
  s := s + Ch;
  Str(n DIV 10 MOD 10, Ch);
  s := s + Ch;
  Str(n MOD 10, Ch);
  s := s + Ch;
  
  Exp := FALSE;
  FOR i := 1 TO 4
  DO
    BEGIN
      TempS := s;
      Delete(TempS, i, 1);
      IF (TempS[1] = TempS[2]) AND (TempS[2] = TempS[3]) 
      THEN
        Exp := TRUE
    END;
  WRITELN(Exp);
  READLN
END.
Добавлено через 36 секунд
Вопрос к условию задачи: а если 4 одинаковые цифры?
0
11 / 11 / 2
Регистрация: 01.10.2010
Сообщений: 139
29.10.2010, 14:54  [ТС] 3
В том то и дело что нужно ровно три одинаковые цифры, не 4 и не 5, а только 3
0
AF
49 / 48 / 21
Регистрация: 06.10.2010
Сообщений: 115
29.10.2010, 14:57 4
Ничего сложного не вижу. Добавляем переменную TempCh и сравниваем её с остальными тремя цифрами.
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
VAR
  s, TempS: STRING;
  TempCh: CHAR;
  i: BYTE;
  Ch: STRING[1];
  n: INTEGER;
  Exp: BOOLEAN;
 
BEGIN
  WRITE('n=');
  READLN(n);
  
  {Ïåðåâîäèì ÷èñëî â ñòðîêó[4] ñ ïðåäøåñòâóþùèìè íóëÿìè}
  s := '';
  Str(n DIV 1000, Ch);
  s := s + Ch;
  Str(n DIV 100 MOD 10, Ch);
  s := s + Ch;
  Str(n DIV 10 MOD 10, Ch);
  s := s + Ch;
  Str(n MOD 10, Ch);
  s := s + Ch;
  
  Exp := FALSE;
  FOR i := 1 TO 4
  DO
    BEGIN
      TempS := s;
      TempCh := TempS[i];
      Delete(TempS, i, 1);
      IF (TempS[1] = TempS[2]) AND (TempS[2] = TempS[3]) AND (TempS[1] <> TempCh) 
      THEN
        Exp := TRUE
    END;
  WRITELN(Exp);
  READLN
END.
0
4 / 4 / 4
Регистрация: 24.10.2010
Сообщений: 29
29.10.2010, 14:59 5
https://www.cyberforum.ru/pascal/thread183369.html
было такое

Добавлено через 38 секунд
AF, намудрил ты с кодом...
0
Платежеспособный зверь
8924 / 4352 / 1642
Регистрация: 28.10.2009
Сообщений: 11,567
29.10.2010, 15:01 6
Цитата Сообщение от HeRo!N Посмотреть сообщение
Дано натуральное число n (n ≤ 9999).
Верно ли, что это число содержит ровно три одинаковые цифры, как, например, числа 6676, 4544, 0006 и т.д.?
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
var
a:array[1..100]of integer;
n:integer;
i,f,c,j,k:integer;
begin
readln(n);
repeat
inc(k);
a[k]:=n mod 10;
n:=n div 10;
until n=0;
for i:=1 to k do
begin
c:=0;
for j:=1 to k do
if a[i]=a[j] then inc(c);
if c=3 then f:=1;
end;
if f=1 then writeln('yes')else writeln('no');
readln;
end.
1
AF
49 / 48 / 21
Регистрация: 06.10.2010
Сообщений: 115
29.10.2010, 15:01 7
Razielko, да ты тоже
Pascal
1
2
3
a:=n div 1000;
  b:=(n-1000*a) div 100;
  c:=(n-1000*a-100*b) div 10;
0
4 / 4 / 4
Регистрация: 24.10.2010
Сообщений: 29
29.10.2010, 15:07 8
да я не люблю при работе с числами преобразовывать их в текст...
и вообще я про проверку на ровно три одинаковые цифры

Добавлено через 4 минуты
ну кот Бегемот, конечно, в перемудрении всех обошёл о_0
если n=0006 или 0020, код не работает
0
Платежеспособный зверь
8924 / 4352 / 1642
Регистрация: 28.10.2009
Сообщений: 11,567
29.10.2010, 15:10 9
Razielko, а ты когда-нибудь видел такое число: 0006?
Выбирай выражения, а то заработаешь.
0
AF
49 / 48 / 21
Регистрация: 06.10.2010
Сообщений: 115
29.10.2010, 15:12 10
Ну я про вычисление второй и третьей цифр)

b:=(n-1000*a) div 100;
c:=(n-1000*a-100*b) div 10;
Pascal
1
2
b := n div 100 mod 10;
c := n div 10 mod 10


Но твой способ рациональнее)
2
4 / 4 / 4
Регистрация: 24.10.2010
Сообщений: 29
29.10.2010, 15:12 11
Цитата Сообщение от HeRo!N Посмотреть сообщение
Дано натуральное число n (n ≤ 9999).
Верно ли, что это число содержит ровно три одинаковые цифры, как, например, числа 6676, 4544, 0006 и т.д.?
да-да, а критику надо принимать
0
Платежеспособный зверь
8924 / 4352 / 1642
Регистрация: 28.10.2009
Сообщений: 11,567
29.10.2010, 15:13 12
Razielko, это выражение не является натуральным числом, условие некорректно.
С отношением к критике у меня всё в порядке, вот отношение к дуракам плохое
0
AF
49 / 48 / 21
Регистрация: 06.10.2010
Сообщений: 115
29.10.2010, 15:13 13
кот Бегемот, в примере написано:

Цитата Сообщение от HeRo!N Посмотреть сообщение
например, числа 6676, 4544, 0006 и т.д.
0006, или 6
0
Платежеспособный зверь
8924 / 4352 / 1642
Регистрация: 28.10.2009
Сообщений: 11,567
29.10.2010, 15:21 14
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
var
a:array[1..4]of integer;
n:integer;
i,f,c,j,k:integer;
begin
readln(n);
repeat
inc(k);
a[k]:=n mod 10;
n:=n div 10;
until k=4;
for i:=1 to k do
begin
c:=0;
for j:=1 to k do
if a[i]=a[j] then inc(c);
if c=3 then f:=1;
end;
if f=1 then writeln('yes')else writeln('no');
readln;
end.
Razielko, для флуда есть соответствующий раздел. а здесь можно нарваться на неприятности.
0
4 / 4 / 4
Регистрация: 24.10.2010
Сообщений: 29
29.10.2010, 15:26 15
замечания по коду:
1. засоряешь память. массив а вполне можно было сделать из 4-х элементов
2. переменная k не проинициализирована. в ней может содержаться что угодно.
3. лишние телодвижения. код
Pascal
1
2
3
4
5
6
7
8
9
10
repeat
inc(k);
a[k]:=n mod 10;
n:=n div 10;
until n=0;
while k<4 do
begin
inc(k);
a[k]:=0;
end;
можно было заменить более удобочитаемым
Pascal
1
2
3
4
5
repeat
inc(k);
a[k]:=n mod 10;
n:=n div 10;
until k=4;
1
29.10.2010, 15:26
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
29.10.2010, 15:26
Помогаю со студенческими работами здесь

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

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

Верно ли, что число содержит ровно три одинаковые цифры?
Верно ли, что это число содержит ровно три одинаковые цифры, как, например, числа 6676, 4544, 0006...

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


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

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

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