finde Fehler nicht.....

jose1219

Grünschnabel
Für ein Intervall von mindestens 150 natürlichen Zahlen z ist die Quersumme qz zu berechnen.

Der Startwert a des Intervalls ist von der Tastatur einzulesen.Führen Sie eine Eingabekontrolle aus,die garantiert,dass a>0 ist.Geben Sie für alle z des Intervalls [a,a+150],die Quersumme und ihre Summanden aus.Falls die Quersumme durch 9 teilbar ist,berechnen Sie qz/9 und z/9 und machen entsprechende Ausgaben.


ich habe Programm geschrieben,Complieren ist ok,aber es gibt immer Fehler im Laufen.:mad:
kann jemand mir helfen? danke


Code:
class Quersumme
{
	public static void main(String args[])
	{
		int a,b,z,qz,summe,qz1,z1;
		a=8;
		b=158;
		z=IO1.einint();
		qz=0;
		summe=0;
		if(a<=z&&z<=b)
		
		for (z=a;z<b;z=z+1)
		{
		
			while(z!=0)
			{
				qz=qz+z%10;
				z=z/10;
			    
			}
		    
		 
		 
		       
		 
		         if (qz%9==0)
		         {
		    	qz1=qz/9;
		    	z1=z/9;
		    	System.out.println(qz1);
		    	System.out.println(z1);
		         }	
		 
		 System.out.println("die Quersumme ist:"+qz);
		 System.out.println("Summe ist:"+summe);
		} 
		    
		 
		
	}
}
 
Hallo,

eine Erklärung wie sich der Fehler bemerkbar macht, wäre nicht schlecht. Ein andere Titel wäre auch nicht schlecht gewesen, da der Thread auch anderen Hilfreich sein könnte.

MFG

zEriX
 
Du dividierst z immer wieder durch 10 --> Dadurch entsteht eine Endlosschleife
Code:
for (z=a;z<b;z=z+1)
  {
     while(z!=0)
      {
	qz=qz+z%10;
	z=z/10;			    
    }
....

Und das dein Programm die Quersumme über das Intervall z=[a,a+150] nicht korrekt
berechnet ist dir hoffentlich klar ;-)
Also wenn ich das richtig verstanden soll es sowas wie
a = 1 --> z[1,151]

1 = quers: 1
2 = quers: 3
3 = quers: 6
--
Aufsummierung der Quersummen im Intervall.
Wenn ja
hier:
(z ist der Eingabewert..
Code:
 public static void main(String args[])
    {
        int z,qz,qz1,z1;
        z=1;      
        qz=0;
        if(z>0) {
            for (int i=z ; i <= (z + 150 ) ; i++)
            {                
                System.out.print("z" + i);
                int quer = i;
                while(quer!=0)
                {
                    qz+=quer%10;                 
                    quer=quer/10;
                }
                System.out.print("|Quersumme :"+qz);
                System.out.println("");
            }
        }
    }

Ausgabe:
Code:
z1|Quersumme :1
z2|Quersumme :3
z3|Quersumme :6
z4|Quersumme :10
z5|Quersumme :15
z6|Quersumme :21
z7|Quersumme :28
z8|Quersumme :36
z9|Quersumme :45
z10|Quersumme :46
z11|Quersumme :48
z12|Quersumme :51
z13|Quersumme :55
z14|Quersumme :60
z15|Quersumme :66
z16|Quersumme :73
z17|Quersumme :81
z18|Quersumme :90
z19|Quersumme :100
z20|Quersumme :102
.....
 
Zuletzt bearbeitet:
vielen dank

aber die Quersumme haben Sie falsch verstanden.

z.B,die Quersumme der 156 ist qz=1+5+6=12

Sie haben die Quersumme von 1 bis 9 falsch gerechnet...:rolleyes:

trotz danke...:)
 
Ich dachte, die Quersummen soll über das Intervall aufsummiert werden.

z = 1:
intervall(1,1)
Aufsummierung der Quersumme 1 :
z = 2
intervall(1,2)
Aufsummierung der Quersumme z1=1 + z2=2 = 3:
z = 2
intervall(1,3)
Aufsummierung der Quersumme z1=1 + z2=2 + z3=3 = 6:
...

Habe da wohl was falsch verstanden. Naja aber eine Quersumme - soviel Wissen traue mir schon zu :-)
 
Zuletzt bearbeitet:
Zurück