Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Pomoc,matematicki problem 12345...........

[es] :: Pascal / Delphi / Kylix :: Pomoc,matematicki problem 12345...........

[ Pregleda: 2517 | Odgovora: 2 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

atlas

Član broj: 20158
Poruke: 167
*.as54.ze.bih.net.ba.



Profil

icon Pomoc,matematicki problem 12345...........12.02.2006. u 17:45 - pre 221 meseci
Dakle imamo zapisane brojeve jedan uz drugi
123456789101112.....99100101102....999100010011002.....itd
pa za neki broj k trebamo odrediti k-tu cifru

broj cifara:
1-c 9*1= 9 cifara
2-c 90*2=180 cifara
3_c 900*3=2700 cifara
4-c 9000*4=36000 cifara itd...
pa nikako da nadem neku logicku putanju preko koje bi za neki broj k odredili k-tu cifru
u ovom broju......
dakle matematika je prioritet,,,pokusavao sam u Pascalu preko (gotoxy) al mi koci prije toga zamislam ovako ovaj broj
01 02 03 04 05 06 07 08 09
10 12 13 14 15 16 17 18 19
20 22 23 24 25 26 27 28 29
30 .................................
......................................
100 101 102 103 104 105 106 107 108 109
110 111 112.......
..........

vidimo da vertikalno brojevi idu od 0,1,2,3,4,5.......do beskonacno
u horizontalno se uz njih dopisuju brojevi od (0 do 9) ali nikako mi se ne da sklopim...
Ako ima neko ideju ....
 
Odgovor na temu

obucina

Član broj: 38191
Poruke: 723

Jabber: obucina


+7 Profil

icon Re: Pomoc,matematicki problem 12345...........13.02.2006. u 12:43 - pre 221 meseci
Nema ovde sta da se pametuje...

Code:

procedure TForm1.Button1Click(Sender: TObject);
var
  i: integer;
  k: integer;
  len: integer;
  cifra: integer;
begin
  k := StrToInt(Edit1.Text);
  i := 0;
  len := 0;
  while true do
  begin
    i := i + 1;
    len := len + Length(IntToStr(i));
    if (len >= k) then
    begin
      cifra := (i div (Round(Power(10, len - k)))) mod 10;
      break;
    end;
  end;
  ShowMessage(Format('%d. cifra je %d', [k, cifra]));


Dakle, povecavas broj i za 1 i racunas za koliko je povecao duzinu zapisa. Kada premasis zapis za neku duzinu, npr dva, to znaci da broj koji si dodao treba da podelis sa 10 na 2, i cifra jedinica u dobijenom broju ce ti biti cifra koju trazis. Da bi je izvukao, uradis deljenje po modulu 10, tj mod 10 i to je to...

P.S. Zreli smo za podforum "Domaci zadatak".
 
Odgovor na temu

PeraKojotSuperGenije
Sasa Popovic
Beograd

Član broj: 44507
Poruke: 126
*.183.eunet.yu.



Profil

icon Re: Pomoc,matematicki problem 12345...........13.02.2006. u 13:30 - pre 221 meseci
Ovaj je bio interesantan :)...

Code:

function Cifra(n: integer): integer;
var k: real;
    x, i: integer;
    s: string;
begin
  k:=n;
  i:=1;
  while k>i*9*power(10, i-1) do
  begin
    k:=k-i*9*power(10, i-1);
    i:=i+1;
  end;
  x:=trunc(power(10, i-1)-1 + (trunc(k) div i)+ ord((trunc(k) mod i)>0));

  if (trunc(k) mod i >0) then cifra:=(x div trunc(power(10, i-trunc(k) mod i ))) mod 10
  else cifra:=x mod 10;
end;

Sendvic uvek pada na namazanu stranu!
 
Odgovor na temu

[es] :: Pascal / Delphi / Kylix :: Pomoc,matematicki problem 12345...........

[ Pregleda: 2517 | Odgovora: 2 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.