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

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

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

> Иной случайный билетик
Zzzz...
сообщение 17.03.2008 23:30
Сообщение #1


///
**

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

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


Давно я тут не был, вот решыл заглянуть сразу с задачей:

Задача 6. Билетик.
Имя входного файла: a.in
Имя выходного файла: a.out
Ограничение по времени: 1 секунда
Ограничение по памяти: 16 мегабайт
Дима нашел половину счастливого билетика. Он хочет узнать, сколько счастливых билетиков могло так начинаться. Счастливым считается билетик, у которого сумма первой половины чисел совпадает с суммой второй половины (длина билетика четна).
Формат входных данных
В первой строке входного файла записана первая половина номера счастливого билетика. Длина этой половины не превосходит 10 цифр.
Формат выходных данных
В выходной файл выведите одно число – количество возможных счастливых билетиков с заданной первой половиной.
Примеры
a.in a.out
123 28


Задача сама по себе легкая, но как я полагаю, что-то я делаю не правильно когда ввожу 123 моя программа выводит 21...
Вот текст программы, я ее написал до половины с 4 знаками, просто дальше должно быть аналогично.



VAR
s,n,k,v,i,q,s1:integer;
BEGIN

assign(input,'input.in');
reset(input);
assign(output,'output.out');
rewrite(output);
readln(n);
while n>0 do
begin
s:=s+(n mod 10);
n:=n div 10;
inc(k);
end;

case k of
1:for i:=1 to 9 do
begin
if s=i then inc(v);
end;
2: for q:=10 to 99 do
begin
s1:=0;
i:=q;
while i>0 do
begin
s1:=s1+(i mod 10);
i:=i div 10;
end;
if s=s1 then inc(v);
end;
3: for q:=100 to 999 do
begin
s1:=0;
i:=q;
while i>0 do
begin
s1:=s1+(i mod 10);
i:=i div 10;
end;
if s=s1 then inc(v);
end;
4: for q:=1000 to 9999 do
begin
s1:=0;
i:=q;
while i>0 do
begin
s1:=s1+(i mod 10);
i:=i div 10;
end;
if s=s1 then inc(v);
end;
end;

END.



Надеюсь на вашу поддержку.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

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


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

 



- Текстовая версия 12.08.2025 5:01
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"