IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> Умножение через циклы, Попарное произведение
сообщение
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 23
Пол: Мужской

Репутация: -  0  +


wink.gif
Я уже, наверное, немножко "поднадоел"?
smile.gif
Опять я встал при разработке программульки.
Вот задание:

Найти все трехзначные числа, которые в 7 раз больше суммы попарных произведений своих цифр (например, 182=7*(1*8+8*2+1*2))

Вроде все понятно и ясно.
Сейчас читал самоучитель и вроде вы понял, чтобы отображать например из числа 100 первую цифру,
надо использовать к переменной параметр [1], т.е. a=100, а отображение первой цифры a[1].

Но почему-то это не работает к присваиванию переменной sad.gif

Вот код:

Код

var a, m: real;
      i: integer;

begin

   FOR i := 101 TO  999 DO
      begin
         a:=7*(i[1]*i[2]+i[2]*i[3]+i[1]*i[3]);
         writeln(a);
      end;

end.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
сообщение
Сообщение #2


Гость






По-моему, тебе вполне достаточно этого:
program zikl_8;

var c: real;
a, i, d1, d2, d3: integer;

begin
i:=101;
repeat

d1:=i div 100;
d3:= i mod 10;
d2:=(i-100*d1-d3) div 10;
a:=7*(d1*d2+d2*d3+d1*d3);

{ сравниваешь число с семикратным попарным произведением }
if i = a then begin
writeln(a);
readln;
end;
i:=i+1;

until i>=999; { цикл все-таки идет по I }

end.

Кстати, конструкция Repeat ... Until сама по себе является операторными скобками, то есть внутри нее Begin ... End просто лишние...
 К началу страницы 
+ Ответить 

Сообщений в этой теме


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 9.09.2025 21:07
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name