Java :: Aufgabe #240
3 Lösungen
Array von Zahlen in die nächstgelegene durch 5 teilbare Zahl umwandeln
Anfänger - Java
von Gustl
- 08.05.2019 um 20:08 Uhr
Schreibe ein Programm welches aus einem Array von Dezimalzahlen diese Zahlen in die nächstgelegene durch 5 teilbare Zahl umwandeln.
Etwa so:
Etwa so:
Konsolenausgabe:
7.1 => 5
8.4 => 10
-2.4 => 0
-2.6 => -5
-8.3 => -10
Lösungen:
public static void main(String[] args) {
double[] zahlen= new double[] {5.2, 17.6, 1.8, 5.9, 8.1 ,12.9 ,6.4 };
for (double num : zahlen) {
System.out.println(num+" => "+(5*Math.round(num/5)));
}
}
Main-Klasse:
Java-Code
/**
* Schreibe ein Programm welches aus einem Array von Dezimalzahlen diese Zahlen in die nächstgelegene durch 5 teilbare Zahl umwandeln.
*
* @author (nOrdan)
* @version (21.07.2019)
*/
public class Umwandler
{
double [] unbearbeitet = {3.4, 2.2, 90.3, 45.0, 32.2, 1092.3 , 2.2313232312, 2.50, 5.5, 3.2, 4.2};
double [] bearbeitet = new double[unbearbeitet.length];
public static void main(String [] args)
{
Umwandler u = new Umwandler();
u.umwandeln();
}
private void umwandeln()
{
System.out.print('\u000C');
double vorkommastellen = 0;
double nachkommastellen = 0;
for (int i = 0; i < unbearbeitet.length; i++)
{
double durch5 = unbearbeitet[i] / 5;
vorkommastellen = (int) durch5 / 1;
nachkommastellen = durch5 - vorkommastellen;
if (nachkommastellen >= 0.5)
{
bearbeitet[i] = 5 + vorkommastellen * 5;
}
else
{
bearbeitet[i] = vorkommastellen * 5;
}
System.out.println(unbearbeitet[i] + " = " + bearbeitet[i]);
}
}
}
public class Java_240 {
public static void nextMultipleFive(double[] n){
for (double a:n) {
double multFive;
double modFive = a%5;
double modMinusFive;
if (a > 0) {
if (modFive < 2.5) {
multFive = a - modFive;
} else multFive = a + (5 - modFive);
}else {
double nA = a*(-1);
modMinusFive = nA%5;
if (modMinusFive < 2.5){
multFive = (nA - modMinusFive)*-1;
}else multFive = (nA + (5- modMinusFive))*-1;
}
if (multFive == -0.0) multFive = 0.0;
System.out.println(a + " => " + multFive);
}
}
public static void main(String[] args) {
double[] test = new double[5];
test[0] = 7.1;
test[1] = 8.4;
test[2] = -2.4;
test[3] = -2.6;
test[4] = -8.3;
nextMultipleFive(test);
}
}
und die Ausgabe:
7.1 => 5.0
8.4 => 10.0
-2.4 => 0.0
-2.6 => -5.0
-8.3 => -10.0
