Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Помогите решить задачу на 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


Наверх

Титульная страница Поиск, карта сайта Написать письмо