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


Знаток
****

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

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


Вот эта задача в моём понимании выглядит так:
{
Дано натур. число N. Определить кол-во 8 значных чисел,
у которых сумма цифр в цифровой записи числа меньше, чем N.
Если таких чисел нет, выводим НЕТ.
}

program _8digits;

function SumOfDigits (x: longint): integer;
var
rem, { остаток }
sum: integer;
begin
sum := 0;
While X <> 0 Do
Begin
rem := X Mod 10; { остаток от деления на 10, т.е последняя цифра числа }
inc (sum, rem);
X:=X Div 10;
End;
SumOfDigits := sum;
end;

var
n, count: integer;
i : longint;

begin
write ('Enter 1 <= n <= 72 : '); readln (n);
count := 0;

for i := 10000000 to 99999999 do
begin
if i mod 10000 = 0 then
writeln (i);
if SumOfDigits (i) < N then
inc(count);
end;

if count = 0 then
writeln('none')
else
writeln('count = ', count);
readln;
end.


В Turbo Pascal 7.0 я не долждался получения результата, прождав пару минут где-то на итерации числа 22400000.
Зато во Free Pascal 2.0.0 я получил результат в течение 1-минуты и пару секунд.


--------------------
Romiras HomeLab- материалы и статьи по разработке ПО, моделирование алгоритмов, обработка и анализ информации, нейронные сети, машинное зрение и прочее.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

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


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

 





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