![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
|
Даны целое число k (1<=k<=180) и последовательность цифр 10111213..9899, в которой выписаны подряд все двузначные числа. Определить номер пары цифр, в которую входит k-я цифра.
По-моему ответ числа от 10 до 99... Как записать решение задачи в делфи? помогите, очень нужно. Заранее спасибо=) |
|
#2
|
|||
|
|||
|
Не совсем понял.
у тебя ряд двузначных цифр, а ищешь ты от одно- до трехзначное. т.е. если бы (10 <= k <= 99), тогда было бы понятно. А что делать с одно- или трехзначным числом. Т.е. как она должна искать (аналитически) в этом случае (желателен пример). |
|
#3
|
|||
|
|||
|
в том то и дело что (1<=k<=180)
чесно говоря у меня даже и идей нет.. экзамен не светит ничего хорошего ![]() |
|
#4
|
|||
|
|||
|
ну могу предположить, что если число к = 161, то номер пары в которую он входить будет 4. (ну т.к. первая пара это 10 и 11, вторая 12 13, 1415 и 1617) но если будет число 169 то тут наверн оно никуда не войдет
|
|
#5
|
|||
|
|||
|
Act, можешь написать то что ты сказал в делфи? пожалуйста, очень нужно..
|
|
#6
|
|||
|
|||
|
Код:
function FindPos(ANumber : Integer; AList : String) : Integer;
var
I : Integer;
sNmb : String;
begin
Result := -1;
sNmb := IntToStr(ANumber);
I := 1;
While I < Length(AList) Do
Begin
If Copy(AList,I,Length(sNmb)) = sNmb Then
Begin
Result := Int(I/2) + 1;
Break;
End;
I := I + 2;
End;
end;ANumber - твое k; AList - твой ряд двузначных в виде строки. возвращает номер пары, если найдено или -1 - если нет. ЗЫ. Писал навскидку, так что могут быть очепятки. По логике вроде все правильно. |
|
#7
|
|||
|
|||
|
Код:
program conshelp;
{$APPTYPE CONSOLE}
uses
SysUtils;
type KU= set of byte;
var
B:KU;
mas:array[10..99] of byte;
procedure FILL1;
var i:byte;
begin
for i:=10 to 99 do
mas[i]:=i;
for i:=1 to 180 do
B:=B+[i];
end;
procedure fill;
var i,countI:byte;
begin
countI:=0;
for i:=1 to 180 do
if (mas[i] in B) then
begin
countI:=countI+1;
writeln (countI);
end;
end;
begin
Fill1;
Fill;
readln;
readln;
end.Последний раз редактировалось Nora, 16.12.2008 в 01:11. |
|
#8
|
|||
|
|||
|
Это идея в общем: отладить надо
|
|
#9
|
|||
|
|||
|
всем спасибо
|