Форум программистов, компьютерный форум, киберфорум
Pascal ABC
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.86/21: Рейтинг темы: голосов - 21, средняя оценка - 4.86
0 / 0 / 1
Регистрация: 11.05.2018
Сообщений: 2
1

Вывести на экран все трехзначные числа, которые можно получить из цифр данного числа

11.05.2018, 16:34. Показов 3812. Ответов 2

Дано трехзначное число. Вывести на экран все трехзначные числа, которые можно получить из цифр данного числа
Если вводим 221 или повторяющиеся цифры возникает ошибка, мысль была такова что создать второй массив в который бы заносились варианты сравнивались если повторяются то пропускать.
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
50
51
52
53
54
55
56
57
58
59
program z3;
 
label x;
var
  h: array[1..3]of integer;
  g: array[1..8]of string;
  a, i, j, k, q, w, e, ind : integer;
  st,st1: string;
 
begin
  Write('Введите трехзначное число: ');Readln(a);  
  if (a < 100) or (a > 999) then
  begin
    Writeln('Некореткное число!');
    goto x;
  end;
  ind:=1;// индекс чтобы не вставлять в место того числа которое уже добавленно
  h[1] := a div 100;
  h[2] := a div 10 mod 10;
  h[3] := a mod 10;  
  if (h[1]=h[2]) or (h[1]=h[3]) or (h[2]=h[3]) then 
    begin
      for i:=1 to 3 do 
        begin
          for j:=1 to 3 do
            begin
              for k:=1 to 3 do
                begin
                  st:=inttostr(h[i])+inttostr(h[j])+inttostr(h[k]);
                  e:=0;
                  for q:=1 to 8 do 
                    begin
                      if g[q]=st then inc(e);
                      if e=0 then 
                      begin
                        g[ind]:=st;// Выдает ошибку 
                        inc(ind);// индекс находиться в не границ массива 
                      end;
                    end;
                end;
            end;
        end;        
    end 
      else 
    if (h[1] <> h[2]) and (h[1] <> h[3]) and (h[2] <> h[3]) then
    for i := 1 to 3 do
        begin
            for j := 1 to 3 do
                begin
                    for k := 1 to 3 do
                        begin
                            write (h[i],h[j],h[k], ' ');
                        end;
                writeln;
                end;
        writeln;
        end;
  x: 
end.
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
11.05.2018, 16:34
Ответы с готовыми решениями:

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

Вывести на экран все трехзначные числа, сумма цифр которых равна N
10. Вывести на экран все трехзначные числа, сумма цифр которых равна N. Пытаться перебирать все...

Найти и вывести все числа в интервале от 1 до N - 1, у которых сумма всех цифр совпадает с суммой цифр данного числа
Дано натуральное число N. Найти и вывести все числа в интервале от 1 до N - 1, у которых СУММА ВСЕХ...

Найти все трехзначные числа, которые делятся на каждую из цифр в их записи
найти все трехзначные числа,которые делятся на каждую из цифр в их записи

2
Модератор
64058 / 47473 / 32728
Регистрация: 18.05.2008
Сообщений: 115,185
12.05.2018, 10:48 2
А если число содержит ноли, например 100, 205?
0
0 / 0 / 1
Регистрация: 11.05.2018
Сообщений: 2
13.05.2018, 19:10  [ТС] 3
я уже нашел решение вот если интересно, да знаю goto использовал хз зачем )
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
50
51
52
53
54
55
56
57
58
59
60
61
program z3;
 
label x;
var
  h: array[1..3]of integer;
  g: array[1..8]of string;
  a, i, j, k, q, w, e, ind: integer;
  st, st1: string;
 
begin
  Write('Введите трехзначное число: ');Readln(a);  
  if (a < 100) or (a > 999) then
  begin
    Writeln('Некореткное число!');
    goto x;
  end;
  ind := 1;
  h[1] := a div 100;
  h[2] := a div 10 mod 10;
  h[3] := a mod 10;  
  
  if (h[1] = h[2]) or (h[1] = h[3]) or (h[2] = h[3]) then 
  begin
    for i := 1 to 3 do 
    begin
      for j := 1 to 3 do
      begin
        for k := 1 to 3 do
        begin
          st := inttostr(h[i]) + inttostr(h[j]) + inttostr(h[k]);
          e := 0;
          for q := 1 to 8 do 
            if g[q] = st then inc(e);            
          if e = 0 then 
          begin
            g[ind] := st;
            inc(ind);
            inc(e);
          end;          
        end;
      end;
    end;
  end  
      else 
  if (h[1] <> h[2]) and (h[1] <> h[3]) and (h[2] <> h[3]) then
    for i := 1 to 3 do
    begin
      for j := 1 to 3 do
      begin
        for k := 1 to 3 do
        begin
          write(h[i], h[j], h[k], ' ');
        end;
        writeln;
      end;
      writeln;
    end;
  for i := 1 to 8 do 
    Write(g[i], ' ');
  x: 
end.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
13.05.2018, 19:10

Найти все трехзначные числа, которые делятся на каждую из цифр в их записи!
хелп! Найти все трехзначные числа, которые делятся на каждую из цифр в их записи!

Найти все трехзначные числа, которые делятся на каждую из цифр в их записи
Найти все трехзначные числа, которые делятся на каждую из цифр в их записи.

Найти все трехзначные числа, которые состоят из разных цифр, а их сумма равна А
Задача №1. Дано натуральное число: - найти первую и последнюю цифры числа; - верно ли, что...

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


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

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

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