ZADATAK 6: "OPERACIJE PO MODULU" - REŠENJE

U ovom zadatku, potrebno je odrediti poslednje tri cifre zbira i poslednje tri cifre proizvoda četiri uneta cela broja. Ovaj tip zadataka se često koristi u programiranju za vežbanje rada sa operacijama po modulu i manipulacijom velikim brojevima. Takođe, zadatak demonstrira kako pravilno upravljati podacima kako bi se izbeglo prekoračenje granica tipa podataka.
Objašnjenje rešenja u CKod u C jeziku rešava problem koristeći operaciju modula kako bi izvukao poslednje tri cifre zbira i proizvoda brojeva. Glavne tačke koda su:

Rešenje u programskom jeziku C

#include <stdio.h>

using namespace std;

int main()
{
long long pro,ab,cd;     //zauzima 64 bita memorije
int  a,b,c,d,zbir,p3,z3;
scanf("%d%d%d%d",&a,&b,&c,&d);
    zbir=a+b+c+d;
    ab=a*b;                               //množi dva po dva da bi podatak mogao da stane kao int tj. u                                                                     //32bita
    cd=c*d;
    pro=ab*cd;
    z3=zbir%1000;              //Ostatak deljenja sa 1000 su zapravo 3 poslednje cifre
    p3=pro%1000;
printf("%d %d",z3,p3);
    return 0;
}

Objašnjenje

​ Brojevi <999 mogu da se deklarisu kao int, jer nisu mnogo veliki, medjutim proizvod 4 takva broja je
broj koji je veci od 2^32(2,147,483,647) sto je maksimalna vrednost koju bi mogao da prihvati long podatak.
Zbog toga se proizvod mora deklarisati kao long long i on moze da prihvati broj<2^64  

Kod u programskom jeziku JAVA

​Rešenje u Javi je sličan pristup kao i u C, uz upotrebu odgovarajućih tipova podataka:import java.util.Scanner;

public class ModulOperacije {
public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);

int a, b, c, d, zbir, z3, p3;
long ab, cd, pro;

// Unos 4 broja
        a = sc.nextInt();
        b = sc.nextInt();
        c = sc.nextInt();
        d = sc.nextInt();

// Računanje zbira i proizvoda
        zbir = a + b + c + d;
        ab = (long) a * b;
        cd = (long) c * d;
        pro = ab * cd;

// Poslednje tri cifre
        z3 = zbir % 1000;
        p3 = (int) (pro % 1000);

// Ispis rezultata
        System.out.printf("%d %d", z3, p3);
    }
}


​Ovaj Java program koristi sličnu logiku kao i C program, s tim što koristi klase Scanner za unos podataka i tip long za rad sa većim vrednostima proizvoda.