Форум программистов, компьютерный форум, киберфорум
Pascal (Паскаль)
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.75/16: Рейтинг темы: голосов - 16, средняя оценка - 4.75
0 / 0 / 0
Регистрация: 28.04.2010
Сообщений: 6
1

получить все числа Армстронга, состоящих из двух, трёх, четырёх, пяти чисел

28.04.2010, 21:27. Показов 2979. Ответов 11
Метки нет (Все метки)

буду очень признателен
Натуральное число из N цифр является числом Армстронга, т.е. сумма его цифр возведенная в степень n, равна самому числу (153=1*1*1+5*5*5+3*3*3).Получить все числа Армстронга, состоящих из двух, трёх, четырёх и пяти чисел. Исходная и выходная информация находится в файлах.
0

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

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

Получить все числа Армстронга, состоящих из двух, трех и четырех чифр
Натуральное число из N цифр является числом Армстронга, если сумма его цифр, возведенная в N-ю...

Получить все числа Армстронга, состоящие из двух, трех и четырех цифр
Натуральное число из n цифр является числом Армстронга, • если сумма его цифр, возведенных в n-ю...

Получить все числа Армстронга, состоящие из двух, трех и четырех цифр
Здравствуйте, очень нужно решить, помогите пожалуйста! Натуральное число из n цифр является...

Получить все числа Армстронга, состоящие из трех и четырех цифр
Получить все числа Армстронга, состоящие из трех и четырех цифр. (Натуральное число из n цифр...

11
1 / 1 / 3
Регистрация: 27.04.2010
Сообщений: 37
28.04.2010, 22:25 2
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Program xXx;
Uses wincrt;
Var
  z,i,n,ch,s:integer;
Begin
  Write('Введите число: '); Readln(ch);
  Write('Введите сколько цифр в числе: '); Readln(n);
  z:=ch;
  s:=round(exp(n*ln(ch mod 10)));
     For i:=1 to n-1 do
       Begin
        ch:=ch div 10;
        s:=s+round(exp(n*ln(ch mod 10)));
       End;
     If (s=z) then
                     Writeln('Число является числом Арметронга')
                  Else
                     Writeln('Число не является числом Арметронга');
Readln;
End.
0
0 / 0 / 0
Регистрация: 28.04.2010
Сообщений: 6
29.04.2010, 01:28  [ТС] 3
эммм
исходные и выходные данные в файлах..
и на этом огромное спасибо!
0
Платежеспособный зверь
8753 / 4179 / 1606
Регистрация: 28.10.2009
Сообщений: 11,321
29.04.2010, 01:56 4
Неверное решение.
А насчет файлов - исходных данных здесь нет, только выходные

Добавлено через 15 минут
вот правильный код
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
var
a,i,rez:longint;
k,b,c,j:integer;
f:text;
begin
assign(f,'output.txt');
rewrite(f);
for i:=10 to 99999 do
begin
k:=0;
a:=i;
repeat
a:=a div 10;
inc(k);
until a=0;
a:=i;
repeat
b:=a mod 10;
c:=1;
for j:=1 to k do
c:=c*b;
rez:=rez+c;
a:=a div 10;
until a=0;
if rez=i then write(f,i,' ');
rez:=0;
end;
close(f);
end.
1
0 / 0 / 0
Регистрация: 28.04.2010
Сообщений: 6
29.04.2010, 14:28  [ТС] 5
пятизначные не находит
0
Модератор
64056 / 47472 / 32727
Регистрация: 18.05.2008
Сообщений: 115,185
29.04.2010, 15:15 6
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
62
63
64
65
66
uses crt;
var s,i,k,p,t:longint;
begin
clrscr;
i:=10;t:=0;
while i<=99 do
  begin
   s:=0;p:=i;
   while p>0 do
     begin
      k:=p mod 10;
      s:=s+k*k;
      p:=p div 10;
     end;
   if s=i then
     begin
      writeln(i);
      inc(t);
     end;
   inc(i);
 end;
if t=0 then writeln('Dvuhznachnyh chisel Armstronga net!');
writeln('Trehznachnye:');
i:=100;
while i<= 999 do
  begin
   s:=0;p:=i;
   while p>0 do
     begin
      k:=p mod 10;
      s:=s+k*k*k;
      p:=p div 10;
     end;
   if s=i then writeln(s);
   inc(i);
 end;
writeln('Chetyrehznachnye:');
i:=1000;
while i<= 9999 do
  begin
   s:=0;p:=i;
   while p>0 do
     begin
      k:=p mod 10;
      s:=s+k*k*k*k;
      p:=p div 10;
     end;
   if s=i then writeln(s);
   inc(i);
 end;
writeln('Pyatiznachnye');
i:=10000;
while i<= 99999 do
  begin
   s:=0;p:=i;
   while p>0 do
     begin
      k:=p mod 10;
      s:=s+k*k*k*k*k;
      p:=p div 10;
     end;
   if s=i then writeln(s);
   inc(i);
 end;
readln
end.
1
Платежеспособный зверь
8753 / 4179 / 1606
Регистрация: 28.10.2009
Сообщений: 11,321
29.04.2010, 18:39 7
Цитата Сообщение от jmekenz Посмотреть сообщение
пятизначные не находит
перенесите переменную с в longint и будет находить

Pascal
1
2
3
4
var
a,i,rez,c:longint;
k,b,j:integer;
f:text;
Puporev, у меня вдвое короче и с файлом
0
0 / 0 / 0
Регистрация: 28.04.2010
Сообщений: 6
29.04.2010, 23:24  [ТС] 8
а блок-схему к ней никак нельзя оформить ?)
0
843 / 82 / 7
Регистрация: 06.12.2009
Сообщений: 331
30.04.2010, 09:27 9
в прицепе построил тебе блок-схемы
0
Вложения
Тип файла: zip noName.pas_.zip (89.0 Кб, 30 просмотров)
Retired
7723 / 2555 / 671
Регистрация: 17.10.2009
Сообщений: 5,100
01.05.2010, 04:30 10
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
var
  i,c,j: LongInt;
  s: string;
  f: Text;
begin
  Assign(f, 'result.txt');
  Rewrite(f);
  for i := 10 to 99999 do
  begin
    Str(i, s);
    c := 0;
    j := i;
    while j > 0 do
    begin
      c := c + Round(exp(ln(j mod 10) * ord(s[0])));
      j := j div 10;
    end;
    if c = i then
      Write(f, i, ' ');
  end;
  Close(f);
end.
0
0 / 0 / 0
Регистрация: 28.04.2010
Сообщений: 6
13.05.2010, 23:16  [ТС] 11
Цитата Сообщение от кот Бегемот Посмотреть сообщение
Неверное решение.
А насчет файлов - исходных данных здесь нет, только выходные

Добавлено через 15 минут
вот правильный код
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
var
a,i,rez:longint;
k,b,c,j:integer;
f:text;
begin
assign(f,'output.txt');
rewrite(f);
for i:=10 to 99999 do
begin
k:=0;
a:=i;
repeat
a:=a div 10;
inc(k);
until a=0;
a:=i;
repeat
b:=a mod 10;
c:=1;
for j:=1 to k do
c:=c*b;
rez:=rez+c;
a:=a div 10;
until a=0;
if rez=i then write(f,i,' ');
rez:=0;
end;
close(f);
end.

а с коментариями можно оформить ?
0
Платежеспособный зверь
8753 / 4179 / 1606
Регистрация: 28.10.2009
Сообщений: 11,321
13.05.2010, 23:28 12
а комментарий очень прост:
1. перебираем все числа от 10 до 99999.
2. с каждого числа снимаем копию и последовательно уменьшаем в 10 раз, пока оно не станет равным 0. И тут же считаем, сколько раз мы это сделали, то есть, считаем количество знаков в числе.
3. зная количество знаков в числе, знаем степень, в которую надо возвести цифры числа
4. снова снимаем копию с числа, выделяем каждую цифру, начиная с последней, и возводим её в степень, найденную в п.2
5 складываем полученные числа и если в итоге получаем исходное число, то печатаем результат
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
13.05.2010, 23:28

Получить все числа Армстронга, состоящие из двух, трех и четырех цифр
Натуральное число из n цифр является числом Армстронга, • если сумма его цифр, возведенных в n-ю...

Найти все числа Армстронга, состоящие их двух, трех и четырех цифр
Число из n цифр является числом Армстронга, если сумма цифр, возведенных в n-ую степень, равна...

Найти все числа Армстронга, состоящие из двух, трех и четырех цифр
Натуральное число из nцифр называется числом Армстронга, если сумма его цифр, возведенных в n -ю...

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


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

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

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