ZADATAK 4: "RAZMENA CIFARA" - REŠENJE
U ovom zadatku ćemo se baviti problemom zamene cifara u datom prirodnom broju. Cilj je zameniti cifru jedinica sa cifrom stotina u broju, dok ostale cifre ostaju nepromenjene. Ovaj zadatak nam omogućava da vežbamo rad sa aritmetičkim operacijama i manipulaciju brojevima u programskom kodiranju.
Rešenja zadataka iz C, C++ i Jave
Na ovoj stranici možete pronaći rešenja i objašnjenja za različite zadatke iz programiranja u jezicima C, C++ i Java. Ova rešenja su pažljivo izrađena kako bi vam pomogla da bolje razumete osnovne i napredne tehnike programiranja, uključujući manipulaciju brojevima, rad sa ciframa i rešavanje matematičkih problema. Svi zadaci su opremljeni detaljnim objašnjenjima i primerima izlaza, kako bi vam omogućili lakše praćenje i razumevanje.
Primeri zadataka:
Na ovoj stranici možete pronaći rešenja i objašnjenja za različite zadatke iz programiranja u jezicima C, C++ i Java. Ova rešenja su pažljivo izrađena kako bi vam pomogla da bolje razumete osnovne i napredne tehnike programiranja, uključujući manipulaciju brojevima, rad sa ciframa i rešavanje matematičkih problema. Svi zadaci su opremljeni detaljnim objašnjenjima i primerima izlaza, kako bi vam omogućili lakše praćenje i razumevanje.
Primeri zadataka:
- Zamena cifara u broju: Kako razmeniti cifre jedinica i stotina u prirodnom broju.
- Translacija tačaka u ravni: Premestite tačke tako da im težište bude u koordinatnom početku.
Programski jezik C
#include <stdio.h>
int main() {
int n, jedinice, stotine, desetice, broj;
// Unos prirodnog broja
scanf("%d", &n);
// Izdvajamo cifre
jedinice = n % 10; // Cifra jedinica (ostatak pri deljenju sa 10)
stotine = (n / 100) % 10; // Cifra stotina (ostatak pri deljenju sa 1000, a zatim sa 10)
desetice = (n / 10) % 10; // Cifra desetica (ostatak pri deljenju sa 100, a zatim sa 10)
// Računanje novog broja sa zamenjenim ciframa
broj = (n / 1000) * 1000 + jedinice * 100 + desetice * 10 + stotine;
// Štampanje rezultata
printf("%d", broj);
return 0;
}
int main() {
int n, jedinice, stotine, desetice, broj;
// Unos prirodnog broja
scanf("%d", &n);
// Izdvajamo cifre
jedinice = n % 10; // Cifra jedinica (ostatak pri deljenju sa 10)
stotine = (n / 100) % 10; // Cifra stotina (ostatak pri deljenju sa 1000, a zatim sa 10)
desetice = (n / 10) % 10; // Cifra desetica (ostatak pri deljenju sa 100, a zatim sa 10)
// Računanje novog broja sa zamenjenim ciframa
broj = (n / 1000) * 1000 + jedinice * 100 + desetice * 10 + stotine;
// Štampanje rezultata
printf("%d", broj);
return 0;
}
Objašnjenje:
- Unos broja:
- Koristimo scanf("%d", &n) za unos broja.
- Izdvajanje cifara:
- Cifra jedinica (jedinice) se dobija sa n % 10.
- Cifra stotina (stotine) se računa tako što broj podelimo sa 100, a zatim uzimamo ostatak pri deljenju sa 10.
- Cifra desetica (desetice) se dobija tako što broj podelimo sa 10, a zatim uzimamo ostatak pri deljenju sa 10.
- Kreiranje novog broja:
- Novi broj se gradi tako što se prvo uzima deo broja bez poslednje tri cifre, zatim se dodaju cifre jedinica i stotina na odgovarajuća mesta.
- Ispis rezultata:
- Na kraju, broj sa zamenjenim ciframa se ispisuje sa printf("%d", broj);.
Testiranje:Primer 1:
Ulaz: 2349
Izlaz: 2943
Primer 2:
Ulaz: 45
Izlaz: 504
Primer 3:
Ulaz: 7
Izlaz: 7
Ulaz: 2349
Izlaz: 2943
Primer 2:
Ulaz: 45
Izlaz: 504
Primer 3:
Ulaz: 7
Izlaz: 7
C++
#include <iostream>
using namespace std;
int main() {
int broj;
cin >> broj;
// Izdvajamo cifre
int stotine = (broj / 100) % 10; // Cifra stotina
int jedinice = broj % 10; // Cifra jedinica
int desetice = (broj / 10) % 10; // Cifra desetica
// Pravimo novi broj sa zamenjenim ciframa
int noviBroj = (jedinice * 100) + (desetice * 10) + stotine;
// Ispisujemo rezultat
cout << noviBroj << endl;
return 0;
}
using namespace std;
int main() {
int broj;
cin >> broj;
// Izdvajamo cifre
int stotine = (broj / 100) % 10; // Cifra stotina
int jedinice = broj % 10; // Cifra jedinica
int desetice = (broj / 10) % 10; // Cifra desetica
// Pravimo novi broj sa zamenjenim ciframa
int noviBroj = (jedinice * 100) + (desetice * 10) + stotine;
// Ispisujemo rezultat
cout << noviBroj << endl;
return 0;
}
Objašnjenje koda:
- Unos broja: Na početku programa korisnik unosi broj.
- Izdvajanje cifara:
- Cifra stotina se dobija tako što broj podelimo sa 100, a zatim uzimamo poslednju cifru (% 10).
- Cifra jedinica se dobija tako što broj podelimo sa 1, a zatim uzimamo ostatak pri deljenju sa 10 (% 10).
- Cifra desetica se dobija tako što broj podelimo sa 10, a zatim uzimamo ostatak pri deljenju sa 10.
- Pravljenje novog broja: Novi broj se pravi tako što se cifre stotina i jedinica zamenjuju. Cifra stotina postaje cifra jedinica, a cifra jedinica postaje cifra stotina.
- Ispis rezultata: Na kraju, novi broj se ispisuje.
Primer:
Ako unosimo broj 2349, program će izdvojiti cifre 2 (stotine), 4 (desetice), i 9 (jedinice). Novi broj će biti 2943, jer se cifra jedinica (9) i cifra stotina (2) zamenjuju.
Primer 1:
Ulaz: 2349
Izlaz: 2943
Primer 2:
Ulaz: 45
Izlaz: 504
Primer 1:
Ulaz: 2349
Izlaz: 2943
Primer 2:
Ulaz: 45
Izlaz: 504
Ovo rešenje je efikasno i koristi jednostavne matematičke operacije za izdvajanje i manipulisanje ciframa broja.
Programski jezik JAVA
import java.util.Scanner;
public class ZamenaCifara {
public static void main(String[] args) {
Scanner ucitavac = new Scanner(System.in);
int n, b, j, s, os, d;
// Unos prirodnog broja
System.out.println("Unesite prirodan broj:");
n = ucitavac.nextInt(); // n = 2349
j = n % 10; // Ostatak deljenja n i 10, j = n % 10 = 9
os = n % 1000; // Ostatak deljenja n sa 1000, os = n % 1000 = 349
d = os % 100 / 10; // Izvlači cifru desetica, d = (349 % 100) / 10 = 4
s = os / 100; // Izvlači cifru stotica, s = 349 / 100 = 3
b = n - os; // Broj se transformiše, b = 2349 - 349 = 2000
b = b + j * 100 + d * 10 + s; // Zamena stotica i jedinice, b = 2000 + 9 * 100 + 4 * 10 + 3 = 2943
// Štampanje rezultata
System.out.println(b); // Prikaz rezultata
}
}
public class ZamenaCifara {
public static void main(String[] args) {
Scanner ucitavac = new Scanner(System.in);
int n, b, j, s, os, d;
// Unos prirodnog broja
System.out.println("Unesite prirodan broj:");
n = ucitavac.nextInt(); // n = 2349
j = n % 10; // Ostatak deljenja n i 10, j = n % 10 = 9
os = n % 1000; // Ostatak deljenja n sa 1000, os = n % 1000 = 349
d = os % 100 / 10; // Izvlači cifru desetica, d = (349 % 100) / 10 = 4
s = os / 100; // Izvlači cifru stotica, s = 349 / 100 = 3
b = n - os; // Broj se transformiše, b = 2349 - 349 = 2000
b = b + j * 100 + d * 10 + s; // Zamena stotica i jedinice, b = 2000 + 9 * 100 + 4 * 10 + 3 = 2943
// Štampanje rezultata
System.out.println(b); // Prikaz rezultata
}
}
Objašnjenje:
- Učitavamo prirodan broj n.
- Izračunavamo cifru jedinica i poslednje tri cifre broja.
- Iz poslednjih tri cifre izdvaja cifru stotica i desetica.
- Formiramo novi broj zamjenom cifre stotica i jedinica.
- Ispisujemo rezultat na ekran.
Povratak: Podaci i tipovi podataka-dodatni primeri