/* Sa ulaza se unosi osnova <= 10 i broj. Provjeriti da li je taj broj ispravan broj za datu osnovu i ako jeste izracunati njegovu vrednost u osnovi 10. */ #include #include int Ispravan(int b, int o) { // Provjerava da li je broj b valjano zapisan u osnovi o if(o > 10) return 0; while(b != 0) { if(b % 10 >= o) return 0; b /= 10; } return 1; } int BrojUnatrag(int b) { // Vraca broj b zapisan unatrag, npr. za 1234 vraca 4321 int bu = 0; while(b != 0) { bu = bu * 10 + (b % 10); b /= 10; } return bu; } int Vrijednost(int b, int o) { // Izracunava dekadnu vrijednost broja b zapisanog u osnovi o int vr = 0; b = BrojUnatrag(b); while(b != 0) { vr = vr * o + (b % 10); b /= 10; } return vr; } int main(int argc, char *argv[]) { int broj, osnova; scanf("%d %d", &broj, &osnova); if(!Ispravan(broj, osnova)) printf("Neispravan unos broja!\n"); else printf("%d u osnovi %d = %d\n", broj, osnova, Vrijednost(broj, osnova)); system("PAUSE"); return 0; }