23.1.23020150. Učitati trocifreni cijeli broj. Ispremještati mu cifre tako da se dobije najveći mogući broj sastavljen od te tri cifre. Npr. 476 ==> 764.

Opis rješenja:

Faze rješavanja zadatka Opis
Prethodno znanje/abc tutorijali / - cjelobrojno dijeljenje , % - ostatak dijeljanja sa deset
n = 123
n = 1*102 + 2*101 + 3*100
jedinice = n %10 // n MOD 10
jedinice = 123 % 10 // 123 % 10 = 3

Ako odbacimo cifru jedinica sa cjelobrojnim dijeljenjem n /10 // n DIV 10
dobijamo broj sa jednom cifrom manje.
Izdvojiti cifre trocifrenog broja >>>
Novo Poređenje izdvojenih cifara.
Inicijalizacija Učitati prirodan trocifren broj
Postupak:
  1. cifra jedinica: n % 10, ostatak dijeljanja (MOD) sa 10
  2. dio - podijeliti broj sa 10 (cjelobrojno dijeljenje)
  3. cifra desetica: desetice = dio % 10, ostatak dijeljanja (MOD) sa 10
  4. novi dio: podijeliti stari dio sa 10 (cjelobrojno dijeljenje)
  5. cifra stotine: stotine = dio % 10, ostatak dijeljanja (MOD) sa 10

Listing programa:

/* 23020150 Generisati trocifreni cijeli broj. Ispremještati mu cifre tako da se dobije najveći mogući broj sastavljen od te tri cifre. Npr. 476 ==> 764. */
package Kombinovani;
import java.util.Scanner;
public class Zadatak {

	public static void main(String[] args) {
		Scanner input = new Scanner(System.in);
		int broj1 = (int) ((1000 - 100) * Math.random() + 100);

		System.out.println("Slucajni broj je : " + broj1);

		int x, y, z, a = 0, pom = 0;

		z = broj1 % 10;
		y = (broj1 % 100) / 10;
		x = broj1 / 100;

		if (x <= y) {
			pom = x;
			x = y;
			y = pom;
		}

		if (x <= z) {
			pom = x;
			x = z;
			z = pom;
		}

		if (y <= z) {
			pom = y;
			y = z;
			z = pom;
		}

		a = 100 * x + 10 * y + z;

		System.out.print("Najveći broj od ponuđenih cifara : " + a);
	}
}

II varijanta
package Kombinovani;
import java.util.Scanner;
public class Zadatak {

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

		int broj1 = (int) ((1000 - 100) * Math.random() + 100);
		System.out.println("Slucajni broj je : " + broj1);

		int x, y, z, a = 0;

		z = broj1 % 10;
		y = (broj1 % 100) / 10;
		x = broj1 / 100;

		if (x >= y && x >= z && y >= z)
			a = broj1;

		if (x >= y && x >= z && z >= y)
			a = x * 100 + z * 10 + y;

		if (y >= x && y >= z && x >= z)
			a = 100 * y + 10 * x + z;

		if (y >= x && y >= z && z >= x)
			a = 100 * y + z * 10 + x;

		if (z >= x && z >= y && x >= y)
			a = 100 * z + x * 10 + y;

		if (z >= x && z >= y && y >= x)
			a = 100 * z + y * 10 + x;

		System.out.print("Najveći broj od ponuđenih cifara : " + a);
	}
}

Ispis na ekranu:
Slucajni broj je : 678
Najveći broj od ponuđenih cifara : 876

Riješeni zadaci    Index