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

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

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

> Целочисленная арифметика (задача), Нужна помощь
сообщение
Сообщение #1


Гость






СРОЧНО Нужна помощь в решении задачи:
Дано натур. число N. Определить кол-во 8 значных чисел, у которых сумма цифр в цифровой записи числа меньше, чем N. Если таких чисел нет, выводим НЕТ.

Тут мой вариант, только считается как то странно и вводить можно любые числа, а не только 8 значные.

Код
program pro;
uses crt;
var x:array[1..8]of integer;
i,n,m,sum,s:integer;
begin
write('Вводим M для сравнения');
readln(m);
write('Ввод n: ');
readln(n);
write('Ввод 8 значных чисел');
for i:=1 to n do
begin
readln(x[i]);
sum:=sum+x[i];
end;
if sum<m then
begin
s:=s+1;
writeln('Таких чисел: ',sum);
end
else
writeln('Нет таких чисел');
readkey;
end.


Сообщение отредактировано: Gambit -
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
сообщение
Сообщение #2


Гость






Кстати, как ни странно, тупой перебор (с некоторым ограничением) дает результат за вполне приемлемое время, измеряемое секундами (3.3 секунды при N = 44):
program pro;
uses crt;

var
n: integer;
i1, i2, i3, i4, i5, i6, i7, i8: byte;
count: longint;
begin
write('n = '); readln(n);
count := 0;
if (n > 0) or (n < 9*8) then begin
for i1 := 1 to 9 do if i1 < n then
for i2 := 0 to 9 do if (i1+i2) < n then
for i3 := 0 to 9 do if (i1+i2+i3) < n then
for i4 := 0 to 9 do if (i1+i2+i3+i4) < n then
for i5 := 1 to 9 do if (i1+i2+i3+i4+i5) < n then
for i6 := 0 to 9 do if (i1+i2+i3+i4+i5+i6) < n then
for i7 := 0 to 9 do if (i1+i2+i3+i4+i5+i6+i7) < n then
for i8 := 0 to 9 do
if (i1+i2+i3+i4+i5+i6+i7+i8) < n
then inc(count);
end;
if count = 0 then writeln('none')
else writeln('count = ', count);
end.
 К началу страницы 
+ Ответить 

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


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

 





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