23.1.23020160. Generisati četverocifreni cijeli broj. Ispremještati mu cifre tako da se dobije najveći mogući broj sastavljen od te četiri cifre. Npr. 8064 ==> 8640.

Opis rješenja:

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

Ako odbacimo cifru jedinica sa cjelobrojnim dijeljenjem n /10 // n DIV 10
dobijamo broj sa jednom cifrom manje.
Izdvojiti cifre četverocifrenog 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
  6. novi dio: podijeliti stari dio sa 10 (cjelobrojno dijeljenje)
  7. cifra hiljade: hiljade = 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) ((10000 - 1000) * Math.random() + 1000);

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

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

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

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

		if (x <= z)

		{
			pom = x;
			x = z;
			z = pom;

		}

		if (x <= p) {
			pom = x;
			x = p;
			p = pom;

		}

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

		}

		if (y <= p) {
			pom = y;
			y = p;
			p = pom;

		}

		if (z <= p) {
			pom = z;
			z = p;
			p = pom;

		}

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

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

Ispis na ekranu:

Riješeni zadaci    Index