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

[Zadatak]z-koren

[es] :: C/C++ programiranje :: C/C++ za početnike :: [Zadatak]z-koren

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

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

proka_92
proka_92
Smederevo

Član broj: 153372
Poruke: 69
93.86.200.*



+4 Profil

icon [Zadatak]z-koren16.10.2009. u 19:05 - pre 176 meseci
Pomozite malom Z-u da nadje broj B koji je koren velikog broja A, A ima najvishe 1000 cifara. A ce uvek imati celobrojni koren
Ulaz:
Sa standardnog ulaza ucitava se u jednoj liniji broj N 0 < N <= 1000, koji predstavalja broj cifara datog broja A. U narednih N linija ucitavaju se cifre broja, i to prvo cifre najvece vrednosti.
Izlaz:
Na standardni izlaz upisati broj M, duzinu broja B, koji predstavlja pozitivni datog broja A, i u narednih M linija ispisati cifre broja B. I to od cifre najvece vrednosti do cifre najmanje.
Primer:
Ulaz:
3
6
2
5
Izlaz:
2
2
5
Objasnjenje:
Broj zapisan na papiru je bio broj 625, njegov koren je 25.

Ja sam pokusavao da uradim ovaj zadatak, kad ga testiram sve radi kako treba, ali kad submitujem, izbaci mi wrong result za sve testove... Evo koda pa probajte da mi objasnite sta ne valja:
Code:

#include <stdio.h>
#include <math.h>
main(){
       int A=0,B,N,M=0,i,c[1000],pom=1,pom1;
       printf("Unesite broj cifara broja A:");
       scanf("%d",&N);
       for(i=0;i<N;i++)
                        scanf("%d",&c[i]);
       for(i=N-1;i>=0;i--){
                        A+=c[i]*pom;
                        pom*=10;}
       B=sqrt(A);
       pom/=10;
       pom1=B;
       while(pom1!=0){
                   pom1/=10;
                   M++;}
       printf("\n%d",M);
       c[0]=B%10;
       B/=10;
       for(i=1;i<N;i++){
                        c[i]=B%10;
                        B/=10;}
       for(i=M-1;i>=0;i--)
                        printf("\n%d",c[i]);
       system("pause");}
 
Odgovor na temu

Mihajlo Cvetanović
Beograd

Moderator
Član broj: 37636
Poruke: 1249



+96 Profil

icon Re: [Zadatak]z-koren16.10.2009. u 23:12 - pre 176 meseci
Tvoj program pretvara niz c od 1000 cifara u broj A koji je int. Maksimalna vrednosti za int (ako je 32-bitni) je 2^31-1=2147483647, a tu može bezbedno da stane samo 9 cifara. Program radi samo za N <= 9 (i neke specijalne slučajeve ako je N==10). Ovaj problem mora da se reši na drugi način.

Postoji recimo matematički postupak da za izračunavanje kvadratnog korena od proizvoljno velikog broja tako što se kreće od najveće cifre i uzimaju se parovi cifara da bi se utvrdila nova cifra korena. Taj postupak se nekada davno učio u školi. Ne znam tačno kako ide, ali Vikipedija zna: http://en.wikipedia.org/wiki/S...lgorithm#Decimal_.28base_10.29 . E sad, mrzi me da se upuštam u shvatanje ovoga, ali ne bi trebalo da je komplikovano, i ako si dobio taj zadatak, onda mora da su vam objasnili taj postupak. Treba samo postupak pretočiti u kod.
 
Odgovor na temu

proka_92
proka_92
Smederevo

Član broj: 153372
Poruke: 69
93.86.200.*



+4 Profil

icon Re: [Zadatak]z-koren17.10.2009. u 01:02 - pre 176 meseci
Zadatak nisam dobio, nasao sam ga na sajtu www.z-trening.com , a u skoli smo samo pomenuli kvadratni koren(kako se odredjuje), ucimo jako malo tamo...
 
Odgovor na temu

[es] :: C/C++ programiranje :: C/C++ za početnike :: [Zadatak]z-koren

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

Postavi temu Odgovori

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