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

ukupan broj cifara u tom nizu problem:(:(:(

[es] :: Pascal / Delphi / Kylix :: ukupan broj cifara u tom nizu problem:(:(:(

[ Pregleda: 2840 | Odgovora: 7 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Tomcat131
sssss sssssssssss
sajt

Član broj: 197958
Poruke: 5
79.101.182.*



Profil

icon ukupan broj cifara u tom nizu problem:(:(:(18.10.2008. u 19:56 - pre 188 meseci
Kada dekadne zapise prirodnih brojeva počevši od broja 1 do nekog zadanog broja N redom napišemo jedan za drugim dobijamo niz cifara kojeg nazivamo brojniz tj.

12345678910111213141516171819202122 ... itd.

Napišite program koji će izračunati ukupan broj cifara u tom nizu.

na ulazu ide broj od 1 do 100 000 000
pretpostavljam da treba da se definise kao longint

e sad..poceo sam zadatak sa petljom for i:=1 to n do
begin
i zapucao..ne znam kako bih krenuo dalje....
mislite li da mozda pomocu while moze lakse i brze?neko ideju pls




ulaz 5 15 120
izlaz 5 21 252
 
Odgovor na temu

Picsel
Beograd

Član broj: 39817
Poruke: 440
*.dyn.ravangrad.net.



+7 Profil

icon Re: ukupan broj cifara u tom nizu problem:(:(:(18.10.2008. u 21:40 - pre 188 meseci
Evo primer za broj 120, broj cifara jednak je
1*9+2*90+3*21.
Mogao bi to jednostavno sa if
recimo,

Code:
if broj <10
  then brojcifara:=broj
  else if broj<100
          then brojcifara:=9+(broj-9)*2 
          else if broj<1000
                  then brojcifara:=9+180+(broj-99)*3   
                  else if broj<10000
                          then brojcifara:=9+180+2700+(broj-999)*4
                          itd.


Evo ako je broj manji od 10000 a veci od 999, znaci broj je cetvorocifren. Njegov brojniz ima zbir cifara svih jednocifrenih, dvocifrenih, trocifrenih i nekih cetvorocifrenih brojeva. Zbir cifara jednocifrenih brojeva je 9, dvocifrenih 180 (90*2), trocifrenih 2700 (900*3), a ostatak je zbir cetvorocifrenih brojeva do datog broja * 4 (jer svaki ima 4 cifre)
 
Odgovor na temu

Tomcat131
sssss sssssssssss
sajt

Član broj: 197958
Poruke: 5
79.101.182.*



Profil

icon Re: ukupan broj cifara u tom nizu problem:(:(:(18.10.2008. u 21:46 - pre 188 meseci
Svakako to sam i ja prokljuvio odma i napravio tabelicu..nego mene muci sto je na ulazu broj do 100 000 000...znaci treba da ide kilometarski program da bi ispisao mogucnosti sve do devetocifrenih brojeva???
 
Odgovor na temu

Picsel
Beograd

Član broj: 39817
Poruke: 440
*.dyn.ravangrad.net.



+7 Profil

icon Re: ukupan broj cifara u tom nizu problem:(:(:(18.10.2008. u 22:15 - pre 188 meseci
Kilometarski? Uopste ne, samo 8 If-ova (za svako povecanje cifre u broju po jedan). Ja sam vec pola ispisao
 
Odgovor na temu

Tomcat131
sssss sssssssssss
sajt

Član broj: 197958
Poruke: 5
79.101.182.*



Profil

icon Re: ukupan broj cifara u tom nizu problem:(:(:(19.10.2008. u 11:55 - pre 188 meseci
done:)


[Ovu poruku je menjao Tomcat131 dana 19.10.2008. u 13:08 GMT+1]

[Ovu poruku je menjao Tomcat131 dana 19.10.2008. u 13:38 GMT+1]
 
Odgovor na temu

badam

Član broj: 78553
Poruke: 97
*.cpe.sattrakt.net.



+2 Profil

icon Re: ukupan broj cifara u tom nizu problem:(:(:(19.10.2008. u 23:48 - pre 188 meseci
Code:

brojcifara:=0;
for i:=1 to n do
  brojcifara:=brojcifara+length(IntToStr(i))


huh, nadam se da nisam 'proplivo' i da ovo nije samo iluzija rešenja koja mi se javila nakon mnoooogo pasulja i piva.

[Ovu poruku je menjao badam dana 20.10.2008. u 03:17 GMT+1]
 
Odgovor na temu

Rapaic Rajko
Bgd

Član broj: 4105
Poruke: 810
*.dynamic.sbb.rs.



+62 Profil

icon Re: ukupan broj cifara u tom nizu problem:(:(:(24.10.2008. u 20:46 - pre 188 meseci
badam, to jeste TACNO resenje, samo... koliko bi trajala ta petlja za 10^8 iteracija (vidi prvi post)? :)))

Rajko
 
Odgovor na temu

Milan Milosevic

Član broj: 67
Poruke: 932
77.46.251.*



+31 Profil

icon Re: ukupan broj cifara u tom nizu problem:(:(:(25.10.2008. u 23:04 - pre 188 meseci
Nije lose samo sto stalno moras da prepravljas algoritam.
Evo jedno malo opstije resenje koje moze da se primeni za bilo koji ulazni podatak.


Function BrCifara(ABroj:String):Int64;
var
I:Integer;//
LenStr:Integer;//Duzina stringa
Broj:Integer; // Broj kao integer;
Step:Integer; // Stepen broja 10 n.p.r. 1 , 10 , 100 ,....
Begin
Result:=0; // Iniciramo rezultat na nulu
LenStr:=Length(ABroj); // Uzimamo duzunu stringa
Broj:=StrToInt(ABroj); // Prava vrednost broja
Step:=1;
for I := 1 to LenStr-1 do Step:=Step*10;
Broj:=Broj-Step;// Koliki je broj cifara veci od Step
Result:=(Broj+1)*LenStr;
Step:=Step div 10;
for I :=LenStr-1 downto 1 do begin
Result:=Result+9*Step*I;
Step:=Step div 10;
end;
End;
 
Odgovor na temu

[es] :: Pascal / Delphi / Kylix :: ukupan broj cifara u tom nizu problem:(:(:(

[ Pregleda: 2840 | Odgovora: 7 ] > FB > Twit

Postavi temu Odgovori

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