![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() |
Наташка |
![]()
Сообщение
#1
|
![]() студентка ) Группа: Пользователи Сообщений: 4 Пол: Женский Реальное имя: Натали Репутация: ![]() ![]() ![]() |
Задача -
Число Армстронга – такое число из k цифр, для которого сумма k-х степеней его цифр равна самому числу, например: 153=13+53+33. Найти все числа Армстронга не более чем из четырех цифр. Что у меня неправильно? Код uses crt; Const MIN_DIGITS = 1; MAX_DIGITS = 4; Var power: array [0..9] of integer; pow10: integer; num: integer; mn: integer; mx: integer; v1: integer; v2: integer; i: integer; j: integer; k: integer; Begin for k:=MIN_DIGITS to MAX_DIGITS do begin for i:=0 to 9 do begin power[i]:= pow(i,k); end; mn := pow(10,k-1); mx := mn*10; for v1:=mn to mx-1 do begin v2 := 0; pow10 := pow(10,k); num := v1; while pow10 <> 1 do begin pow10 := pow10 div (10); j := num / pow10; num := num - (j*pow10); v2 := v2 + (power[j]); if v2 > v1 then break; end; if v2=v1 then writeln(v1); end; end; End. заранее спасибо Сообщение отредактировано: Наташка - 4.05.2007 10:21 |
![]() ![]() |
![]() |
Текстовая версия | 20.07.2025 6:45 |