Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 29.02.2012, 08:14   #1
zenid
Пользователь
 
Регистрация: 25.12.2011
Сообщений: 47
По умолчанию Найти количество трехзначных чисел

Доброе утро,помогите пожалуйста с кодом программы.
1. Найти количество трехзначных чисел, сумма цифр которых равна А, а само число заканчивается цифрой В (А и В вводятся с клавиатуры).
zenid вне форума Ответить с цитированием
Старый 29.02.2012, 09:21   #2
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,542
По умолчанию

Цитата:
количество трехзначных чисел, сумма цифр которых равна А, а само число заканчивается цифрой В
= числу двухзначных чисел, сумма цифр которых равна A-B.
сумма двух оставшихся цифр =A-B
и стоят они на первых двух местах =образуют двухзначное число.

что легко считается с помощью таблицы
Код:
case A-B of
0: r:=0; // 00B не в счет!
1: r:=1; // 10B
2: r:=2; // 20B; 11B;
3: r:=3; // 30B; 21B; 12B;
....
10: r:=9; //19B; 28B; 37B; 46B; 55B; 64B; 73B; 82B; 91B;
...
17: r:=2; //89B; 98B;
18: r:=1; //99B;
else r:=0;// таких чисел нет 
end;
программа — запись алгоритма на языке понятном транслятору
evg_m вне форума Ответить с цитированием
Старый 29.02.2012, 09:34   #3
Vasisualis
 
Регистрация: 21.06.2011
Сообщений: 8
По умолчанию

Код:
type
mas=array[1..20] of integer;
var
i,coltrch,col:integer;
begin
readln(col); // кол-во элементов масива
for i:=1 to col do
readln(mas[i]);

i:=0; coltrch:=0;
for i:=1 to col do
 begin
   sum:=(mas[i] div 100)+(mas[i] div 10 mod 10)+(mas[i] mod 10);
   if (mas[i] div 100>0) and (mas[i] div 100<10) and (mas[i] mod 10 = B) and (sum=A) then
   inc(coltrch);
 end;
writeln(coltch);
end;

Последний раз редактировалось ACE Valery; 29.02.2012 в 12:55.
Vasisualis вне форума Ответить с цитированием
Старый 29.02.2012, 10:07   #4
DiemonStar
Старожил
 
Регистрация: 08.02.2012
Сообщений: 2,173
По умолчанию

многовато вычислений) вот так оптимальнее:
Код:
var A, B, CD, Count, I : integer;
begin
  readln(A);
  readln(B);
  Count := 0;
  CD := A - B;
  For I := 1 to (CD div 2) do
    If 2*I = CD then
      Count := Count + 1
     else
      Count := Count + 2;
end.
Правильно поставленная задача - три четверти решения.
DiemonStar вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Pascal.Определить к-количество трехзначных натуральных чисел,сумма цифр которых n (n=13). naty7773 Помощь студентам 2 11.01.2012 16:43
Квадраты некоторых трехзначных чисел оканчиваются тремя цифрами, которые как раз и со-ставляют исходные числа. Найти все такие monokol Помощь студентам 1 24.12.2011 13:57
Квадраты некоторых трехзначных чисел оканчиваются тремя цифрами, которые как раз и со-ставляют исходные числа. Найти все такие monokol Паскаль, Turbo Pascal, PascalABC.NET 1 23.12.2011 16:44
Дана последовательность вещественных чисел. каждая пара чисел задает границы отрезка. Найти количество целых чисел на отрезках 'studentka' Помощь студентам 6 30.11.2011 18:35
найти кол-во трехзначных чисел сумма простых делителей которых кратна 5 (на Делфи) anzorchik Помощь студентам 2 02.10.2011 16:18