D
Destiny1985
Gast
Gibt es Methoden mit denen ich die Prüfziffer einer beliebig langen Zahl berechnen kann ? Würde mir sehr helfen
int num = .... //die zahl deren prüfziffer du berechnen willst
int laenge = String.valueOf(num).length();
int laenge = String.valueOf(num).length();
static String valueOf(int i)
Returns the string representation of the int argument.
mic_checker hat gesagt.:... der Modulo Operator kann hilfreich sein sag ich nur....
int num = 12345;
int zahl = num % 10; //in zahl steht jetzt 5
public class Pruefziffer
{
public static void main(String[] args)
{
//Prüfziffer von num berechnen - ändern wenn gewollt
int num = 12,cur = 0,sum = 0,zahl = 3;
int laenge = String.valueOf(num).length();
while(laenge-- > 0)
{
cur = num % 10;
num /= 10;
sum += cur * zahl;
zahl = zahl == 3 ? 1 : 3;
}
if(sum % 10 == 0)
System.out.println("Prüfziffer = 0");
else
System.out.println("Prüfziffer = "+(10 - (sum % 10)));
}
}
public class Pruefziffer
{
public static void main(String[] args)
{
//Prüfziffer von num berechnen - ändern wenn gewollt
int num = 12,cur = 0,sum = 0,zahl = 3;
int laenge = String.valueOf(num).length();
while(laenge-- > 0)
{
cur = num % 10;
num /= 10;
sum += cur * zahl;
zahl = zahl == 3 ? 1 : 3;
}
cur=num%10;
num /= 10;
//gleichbedeutend zu num = num / 10;
sum += cur * zahl;
//sum = sum + (cur * zahl)
zahl = zahl == 3 ? 1 : 3
/* oder:
if(zahl == 3)
zahl = 1;
else
zahl = 3
*/
if(sum % 10 == 0)
System.out.println("Prüfziffer = 0");
else
System.out.println("Prüfziffer = "+(10 - (sum % 10)));
}
}
sum % 10
Illuvatar hat gesagt.:Hm probiers mal mit long statt int kann sein dass es daran liegt.
public class Pruefziffer {
public static void main(String[] args) {
String num = "31313131313131";
int laenge = num.length(),cur,sum = 0,zahl = 3;
int ende = laenge-1;
char ch;
while (laenge-- > 0) {
/* Speichere das letzte Zeichen des Strings in ch */
ch = num.charAt(ende--);
/*
* ch ist char, deshalb müssen wir '0' subtrahieren um den tatsächlichen Zahlenwert zu
* erhalten. Danach multiplizieren wir diese Zahl mit 3 oder 1.
*/
sum += (ch - '0') * zahl;
zahl = zahl == 3 ? 1 : 3;
}
if(sum % 10 == 0)
System.out.println("Prüfziffer = 0");
else
System.out.println("Prüfziffer = "+(10 - (sum % 10)));
}
}
public static void Berechnung(long startZahl, long endZahl)
{
int zaehler = (int)(endZahl - startZahl);
long zahl = startZahl;
while ( zaehler != 0 )
{
long cur = 0,sum = 0,var = 3;
long laenge = String.valueOf(zahl).length();
while(laenge-- > 0)
{
cur = zahl % 10;
zahl /= 10;
sum += cur * var;
var = var == 3 ? 1 : 3;
}
if(sum % 10 == 0)
System.out.println("\nDie Pruefziffer ist 0");
else
System.out.println("\nDie Pruefziffer ist " + (10 - (sum % 10)));
zaehler = zaehler - 1;
zahl = zahl + 1;
}
}
Die Prüfziffer ist 3
Die Prüfziffer ist 7
Die Prüfziffer ist 7
Die Prüfziffer ist 7
Die Prüfziffer ist 7
Die Prüfziffer ist 7
Die Prüfziffer ist 7
Die Prüfziffer ist 7
Die Prüfziffer ist 7
Die Prüfziffer ist 7
zahl = zahl + 1;
zahl = ++startZahl;