Java Problèmes Types
Calculer le PGCD
Remarque
PGCD est une abréviation pour: Plus grand commun diviseur, en anglais: Greatest common divisor ou GCD.
public int calculateGcd(int pA, int pB) {
int gcd = 0;
int min;
if (pA < pB) {
min = pA;
gcd = pB; //pour le cas où a=0 -> gcd=b
} else {
min = pB;
gcd = pA; //pour le cas où b=0 -> gcd=a
}
for (int i = 1; i <= min; i++) {
if (pA % i == 0 && pB % i == 0) {
gcd = i;
}
}
return gcd;
}
Algorithme d'Euclide par soustractions
public int calculateGcdEuclidSubtraction() {
int gA = a;
int gB = b;
if (gA == 0) {
return gB;
}
while (gB != 0) {
if (gA > gB) {
gA = gA - gB;
} else {
gB = gB - gA;
}
}
return gA;
}
Algorithme d'Euclide par divisions
public int calculateGcdEuclidDivision() {
int gA = a;
int gB = b;
int t = 0;
while (gB != 0) {
t = gB;
gB = gA % gB;
gA = t;
}
return gA;
}
isPrime()
public boolean isPrime(int pNumber) {
int count = 0;
for (int i = 1; i <= pNumber; i++) {
if (pNumber % i == 0) {
count++;
}
}
return (count == 2);
}
Radpide
public boolean isPrime() {
int i = 2;
while ((i < number) && (number % i != 0)) {
i = i + 1;
}
return i == number;
}
Plus radpide
public boolean isPrime() {
int n = Math.abs(number);
int i = 2;
while (i <= Math.sqrt(n) && n % i != 0) {
i++;
}
return n == 2 || n % i != 0 && n > 1;
}
Génération d'une suite de nombres aléatoires entiers
public void printRandomNumbers(int pN, int pMin, int pMax){
for (int i = 1; i <= pN; i++) {
int currentNumber = (int)(Math.random() * (pMax - pMin +1)) + pMin;
System.out.print(currentNumber+" ");
if(i%20==0) {
System.out.println();
}
}
System.out.println();
}
public class NombresAleatoire {
private ArrayList< Double> alNumbers = new ArrayList<>();
public void randomFill(int pN, double pMin, double pMax) {
alNumbers.clear();
double currentNumber;
for (int i = 0; i < pN; i++) {
currentNumber = Math.random() * (pMax - pMin) + pMin;
alNumbers.add(currentNumber);
}
}
public void print() {
for (int i = 0; i < alNumbers.size(); i++) {
System.out.print(alNumbers.get(i)+" ");
if((i+1)%5==0) System.out.println();
}
System.out.println();
}
}
Trouver un élément dans une liste
public int findLast(String pNeedle) {
int result = -1;
for (int i = 0; i < alMyList.size(); i++) {
if (alMyList.get(i).getAttribute().equals(pNeedle)) {
result = i;
}
}
return result;
}
public int findFirst(String pNeedle) {
int result = -1;
for (int i = alMyList.size() - 1; i >= 0; i--) {
if (alMyList.get(i).getAttribute().equals(pNeedle)) {
result = i;
}
}
return result;
}
public int findFirst(String pNeedle) {
int result = -1;
for (int i = 0; i < alMyList.size(); i++) {
if (alMyList.get(i).getAttribute().equals(pNeedle) && result == -1) {
result = i;
}
}
return result;
}
public int findFirst(String pNeedle) {
int result = -1;
int i = 0;
while (i < alMyList.size() && result == -1) {
if (alMyList.get(i).getAttribute().equals(pNeedle)) {
result = i;
}
i++;
}
return result;
}
Trouver le maximum dans une liste
public int getMax() {
if (alListOfNumbers.size() > 0) {
int max = alListOfNumbers.get(0);
int current;
for (int i = 1; i < alListOfNumbers.size(); i++) {
current = alListOfNumbers.get(i);
if (max < current) {
max = current;
}
}
return max;
} else {
return -1;
}
}
public int getMin() {
if (alListOfNumbers.size() > 0) {
int min = alListOfNumbers.get(0);
int current;
for (int i = 1; i < alListOfNumbers.size(); i++) {
current = alListOfNumbers.get(i);
if (min > alListOfNumbers.size current) {
min = current;
}
}
return max;
} else {
return -1;
}
}
Calculer la somme des nombres d'une Liste
public int getSum() {
int sum = 0;
for (int i = 0; i < alListOfNumbers.size(); i++) {
sum = sum + alListOfNumbers.get(i);
}
return sum;
}
public double getAverage() {
if (alMarks.size()==0)
//La méthode retourne 0 si la liste est vide
return 0;
else
return (double) getSum() / alListOfNumbers.size();
}