С Новым годом! Форум программистов, компьютерный форум, киберфорум
Pascal ABC
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.93/14: Рейтинг темы: голосов - 14, средняя оценка - 4.93
1 / 1 / 0
Регистрация: 09.01.2011
Сообщений: 20

Возвести сумму всех чисел числа в степень, равную их количеству.

20.10.2011, 18:51. Показов 2729. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Пишу программу, которая возводит сумму цифр числа в степень, равную количеству цифр в числе, и выводит на экран все числа от 1 до вводимого числа, если после возведения результат равен самому числу. Выводятся не числа Амстронга, в которых цифры возводятся в степень, а затем складываются, а числа, в которых сумма цифр возводится в степень.

Подскажите, в чём ошибка и как её исправить:

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
program stepen;
var
ch, sc, i, s, k, t, v, h, m:integer;
function arm(v: integer): boolean;
var
 kol:integer;
   begin
     sc:=ch;
   arm:=false;
   sc:=0; i:=0;
  while ch<>0 do
       begin
         i := i + 1; {количество цифр}
         sc:=sc+ ch mod 10; {сумма цифр}
         ch := ch div 10;
       end;
  end;
begin
 
  Write ('Введите число');
  Read (ch);
  t:=ch;
 
  for v:=1 to t do
  begin
  if arm (v) then ;
  for k:=1 to i do
    m:=m*sc; {возводим число в степень i}
   if m=v then
   writeln(m);
     sc:=sc+1;
  end;
end.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
20.10.2011, 18:51
Ответы с готовыми решениями:

Рекурсия: возвести минимальный элемент массива в степень, равную количеству его вхождений в массив
Есть функция, в нее передается массив из n элементов. Функция находит минимальный элемент и считает сколько раз он встречается в массиве,...

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

Найти минимальную цифру этого числа и возвести введённое число в степень, равную минимальной цифре
var n : word; s : real; {Функция выдает наименьшую цифру числа number} function getMinDigit(number : word) : byte; var ...

4
Почетный модератор
 Аватар для Puporev
64314 / 47610 / 32743
Регистрация: 18.05.2008
Сообщений: 115,168
20.10.2011, 20:05
Если правильно понял, то можно так.
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
program stepen;
uses crt;
function arm(v:integer): boolean;
var ch, sc, i, k, m:integer;
begin
ch:=v;
sc:=0; i:=0;
while ch<>0 do
 begin
  i := i + 1; {количество цифр}
  sc:=sc+ ch mod 10; {сумма цифр}
  ch := ch div 10;
 end;
m:=1;
for k:=1 to i do
m:=m*sc; {возводим число в степень i}
arm:=m=v;
end;
var ch,i:integer;
begin
Write ('Введите число ch=');
Read (ch);
if arm (ch) then
for i:=1 to ch do
write(i,' ')
else write('Число не соответствует условию');
end.
1
1 / 1 / 0
Регистрация: 09.01.2011
Сообщений: 20
20.10.2011, 20:35  [ТС]
Скорее должно получится что-то вроде этого:
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
program stepen;
function arm(v:integer): boolean;
var ch, sc, i, k, m:integer;
begin
ch:=v;
sc:=0; i:=0;
while ch<>0 do
 begin
  i := i + 1; {êîëè÷åñòâî öèôð}
  sc:=sc+ ch mod 10; {ñóììà öèôð}
  ch := ch div 10;
 end;
m:=1;
for k:=1 to i do
m:=m*sc; {âîçâîäèì ÷èñëî â ñòåïåíü i}
arm:=m=v;
end;
 
var ch,i,d,q:integer;
begin
Writeln ('Ââåäèòå ÷èñëî');
Read (ch);
q:=ch; ch:=0;
for d:=1 to q do
begin
ch:=ch+1;
if arm (ch) then
write(i,' ')
end;
end.
То есть должны выводится все числа от 1 до ch, соответствующие условию...
Но выводит почему-то нули, хотя счётчик увеличивает ch...

Добавлено через 4 минуты
Со строкой ch:=v надо что-то делать... Там переприсвоение где-то не катит по-моему...
0
Почетный модератор
 Аватар для Puporev
64314 / 47610 / 32743
Регистрация: 18.05.2008
Сообщений: 115,168
20.10.2011, 20:37
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
program stepen;
uses crt;
function arm(v:integer): boolean;
var ch, sc, i, k, m:integer;
begin
ch:=v;
sc:=0; i:=0;
while ch<>0 do
 begin
  i := i + 1; {количество цифр}
  sc:=sc+ ch mod 10; {сумма цифр}
  ch := ch div 10;
 end;
m:=1;
for k:=1 to i do
m:=m*sc; {возводим число в степень i}
arm:=m=v;
end;
var ch,i,k:integer;
begin
Write ('Введите число ch=');
Read (ch);
k:=0;
for i:=1 to ch do
if arm (i) then
 begin
  write(i,' ');
  k:=1;
 end;
if k=0 then write('Чисел по условию  нет');
end.
Добавлено через 1 минуту
Цитата Сообщение от Nиk Посмотреть сообщение
Со строкой ch:=v надо что-то делать... Там переприсвоение где-то не катит по-моему...
Ничего там не происходит, просто мы сохраняем заданное число, оно понадобится для вывода.

Добавлено через 41 секунду
Не нравится, сделай другие переменные, я у тебя списал, но мой код нормально работает.
1
1 / 1 / 0
Регистрация: 09.01.2011
Сообщений: 20
20.10.2011, 20:39  [ТС]
Благодарю, всё работает.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
20.10.2011, 20:39
Помогаю со студенческими работами здесь

Возвести каждое число в степень, равную его номеру
Помогите решить задачку плз. В последовательности из 5 чисел возвести каждое число в степень, равную его номеру. Вывести новую...

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

Найти нечетный нод и возвести его в степень, равную минимальному элемента массива
здравствуйте, помогите пожалуйста найти нечетный нод и возвести его в степень ,равную минимальному элемента массива

Даны три действительных числа. Вычислить корень квадратный из четных чисел и возвести в 3 степень нечетные числа
Даны три действительных числа. Вычислить корень квадратный из четных чисел и возвести в 3 степень нечетные числа.

Даны три действительных числа. Вычислить корень квадратный из четных чисел и возвести в 3 степень нечетные числа
Даны три действительных числа. Вычислить корень квадратный из четных чисел и возвести в 3 степень нечетные числа.


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru