Zahlenketten

Status
Nicht offen für weitere Antworten.

Bladerunner

Mitglied
Hallo, ich soll mal wieder ein Programm schreiben... diesmal solls darum gehen das mein Programm eine Zahlenkette mit 10 Stellen die eine Folge aus a,b,c,d,e,f,g,h,i,j Ziffern ist, erkennt ob Sie nach der Formel a+2b+3c+4d....+10j aufgebaut ist, weiterhin muss die gesamte Zahlenkette auch durch 11 Teilbar seim um ihre Echheit zu bestätigen..... ein korrekte Zahlenkette würde so aussehen 3411040114

Wie würdet ihr an die Sache herangehen Schleifen/Anweisungen ...???
 

Nobody

Top Contributor
drück dich etwas genauer aus, wie du den ersten teil meinst.

zum ersten teil:
Code:
if(zahl%11==0){
  System.out.println("die zahl ist durch 11 teilbar");
}
 

Bladerunner

Mitglied
Also hier die Orginal Aufgabenstellung

Code:
ISBN-Prüfung

Die ISBN ist eine Ziffernfolge, die im Buchhandel benutzt wird, um Bücher und andere Medien einfach zu identifizieren. Sie ist eine Folge abcdefghij wobei a, b, ..., i Ziffern sind und j eine Ziffer oder der Buchstabe X ist. Dabei entspricht X der Zahl 10. 
Um Fehler bei der Datenübermittlung zu erkennen, ist eine gültige ISBN so beschaffen, das der Wert durch 11 teilbar ist. ( a+2b+3c+4d....10j )
Ist dies nicht der Fall so liegt eine falsche Nummer vor, die zum Bsp durch vertauschen von Ziffern zu Stande gekommen sein kann. Schreiben Sie ein Java Programm, das überprüft und ausgibt, ob eine eingegeben Zeichenkette eine gültige ISBN ist.

das mit dem Zahl durch 11 teilen war auch mein erster Gedanke aber erscheint mir irgendwie zu einfach :wink:
 
G

Guest

Gast
also, ich hab die Frage so verstanden:

a + (b*2) + (c*3) ..... (j*10) = summe

ist Summe durch 11 teilbar, dann ist ISBN-Nr. korrekt.


Hier mein Programmcode:

public class Isbn {
public static void main(String[] args) {
String kette = "3827264642";
int[] x = new int[kette.length()];
int sum = 0;
for (int i=0; i<kette.length();i++) {
x = kette.charAt(i) - 48;
if (x == 40) { x = 10; } // X=88 (88-48=40 --> 10)
sum = sum + (x * (i+1));
}
System.out.println(sum);
if ((sum % 11) != 0) {
System.out.println(kette + " ist keine ISBN-Nummer");
}
}
}
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Oben