![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Помогите решить задачу на Turbo Pascal
Хеад © (2007-01-30 16:45:00)Дано целое K от 1 до 180. Определить, какая цифра находится в K-той позиции последовательности 10111213...9899, в которой выписаны подряд все двухзначные числа
head-dron (2007-01-31 20:58:00) [1]
> А на фига???
Упс. Незаметил, что там все числа получаются целыми. Извините.
Virgo_Style (2007-01-31 13:37:00) [2]head-dron (31.01.07 12:16) [10]
Тип Real делает переменную res вещественной.
А на фига???
:'-(
head-dron (2007-01-31 12:16:00) [3]
> Desdechado © (31.01.07 11:35) [9]
> > Это типо для вещественного числа.
> Какое может быть ЧИСЛО (тем паче ВЕЩЕСТВЕННОЕ), если это
> цифра?
Ну блин. ТипRealделает переменнуюresвещественной. Тоесть на выходе выходит примерно такое4.000000000000+00, когда добавляешьres:0:0на выходе получается просто4.
Desdechado (2007-01-31 11:35:00) [4]> Это типо для вещественного числа.
Какое может быть ЧИСЛО (тем паче ВЕЩЕСТВЕННОЕ), если это цифра?
novill (2007-01-31 09:34:00) [5]последний шанс, для случая
> Я просто вообше в само условие невьехал.
вот так задача решается "в лоб"
program Project2;
uses crt;
const ichodnay_stroka:string='10111213141516171819202122232425262728293031323334353637 38394041424344454647484950515253545556575859606162636465666768697071727374757677 78798081828384858687888990919293949596979899';
var k:integer;
begin
readln(k);
Writeln(ichodnay_stroka[k]);
Readln;
end.
Для понимания задачи хватит, плюс я искренне надеюсь что такой варинт не примут для сдачи.
novill (2007-01-31 09:21:00) [6]> [6] Хеад (30.01.07 23:04)
А может все же в дворники???
ЗЫ Я, возможно, слишком резок, но какого черта ты пишешь?
> Это типо для вещественного числа.
Если у тебя к - целочисленное???
> var
> k:integer;
Хеад (2007-01-30 23:04:00) [7]
> Desdechado
> А что это у тебя за цифра такая res:0:0?
Это типо для вещественного числа. первая цифра для отступа, вторая убирает цифры после запятой. (Чисто для красоты)
Desdechado (2007-01-30 22:48:00) [8]Чтобы "въехать", нужно всего лишь найти зависимость цифр в той строке:
10
11
12
13
..
89
90
..
98
99
А что это у тебя за цифра такаяres:0:0?
Хеад (2007-01-30 21:42:00) [9]
program proga;
uses
crt;
var
res:real;
k:integer;
begin
clrscr;
writeln('Vvedite K');
readln(K);
res:=(k mod 2)*((k div 20)+1)+(((k mod 2)-1)*(-1))
*((((k div 2) mod 10)+9) mod 10);
writeln('Cifra v positii K: ',res:0:0);
readln;
end.
Так чтоли надо, или еще что добавить надо. Я просто вообше в само условие невьехал.
novill (2007-01-30 18:03:00) [10]Не помощи ради, а чисто поржать!
Вот тебе решение в одну строчку! ))))))
result:=(k mod 2)*((k div 20)+1)+(((k mod 2)-1)*(-1))*((((k div 2) mod 10)+9) mod 10);
Если сможешь объяснить преподу, что тут происходит - "отлично" тебе обеспечено! )))
novill (2007-01-30 17:03:00) [11]Это же просто!
если К четное - цифра обозначающая единицы, иначе - десятки.
Дальше еще проще. Не буду писать всё - дам шанс подумать.
MBo (2007-01-30 17:02:00) [12]Для решения понадобится изучить операторы div mod и функцию Odd