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

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

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

 
 Ответить  Открыть новую тему 
> Иной случайный билетик
сообщение
Сообщение #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 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Гость






Цитата
3: for q:=100 to 999 do
С чего бы? Что, сумма цифр 006 не равна сумме цифр 123? Это по вопросу "почему неправильно"...

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


///
**

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

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


Да, Вы правы, спасибо)...ступил я...
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

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

 





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