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");}
#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");}