will ich drucken aller armstrong-Zahl zwischen 1 und 1000 in einer textbox mit awt oder swing, aber ich bekomme nur letzten Wert von meinem code .Also plc helft mir
will ich drucken aller armstrong-Zahl zwischen 1 bis 1000 in ein textfield mit awt oder swing, aber ich bekomme nur letzten Wert von meinem code .Also pls helft mir
public void actionPerformed(ActionEvent e)
{
String s1=tf.getText();
int n1=Integer.parseInt(s1);
for(int n=0;n<10000;n++)
{
int sum=0;
int number=n;
int original=number;
while(number>0)
{
int r=number%10;
sum+=r*r*r;
number=number/10;
}
if(sum==original)
{
tf1.setText(String.valueOf(original[i]));
}
}
}
Du musst angemeldet sein, um einen Kommentar abzugeben.
Für diejenigen, die nicht wissen, ist eine Armstrong-Zahl (oder narzisstische Zahl) ist eine Zahl mit n Ziffern ist gleich der Summe der einzelnen Ziffern der N-TEN Kraft.
(x1*10(n-1))+(x1*10(n-2))...+(x1*10(n-n)) = (x1)n+(x2)n...+(xn)n
Dies bedeutet, dass, wenn die Zahl 1-stellig, wird der Strom
1
.Daher gibt es 10 1-stellige zahlen, die Armstrong-Nummern:
Code, wie geschrieben, nicht identifizieren, jede dieser zahlen als Armstrong zahlen.
Ihr code auch nicht richtig identifizieren einige Ziffern als 4-stellige Armstrong zahlen, weil Sie nur schauen, für die die Kuben (3. Potenz) Ihre zahlen auch nicht die 4. macht.
(die Sie nicht haben, um über sorgen zu zweit, weil es keine zweistellige Armstrong zahlen)
Um richtig zu bestimmen, alle möglichen Armstrong-zahlen zwischen 1 und 10000, müssen Sie schreiben, eine "power" - Schleife, findet die N-te Potenz eine Zahl durch Multiplikation der Anzahl
n
Zeiten.Dieser würde so Aussehen:
Dies sollte auch kümmern sich um Ihr problem mit der textBox immer jedes mal überschrieben. Durch speichern der zahlen in einen string und drucken Sie dann alle auf einmal, nur einmal (kein überschreiben), erhalten Sie bessere Ergebnisse.
Du immer die aktuelle gefundenen Wert. Aber Sie sollten die bisherigen gefundenen Werte + aktuelle gefundenen Wert.
Aber mehr robust wäre, um ein stringbuilder-Objekt und append das Ergebnis jedes mal und setzen Sie diesen Wert auf das textfield-Objekt außerhalb der Schleife.
n
.Einfach, alles, was Sie tun, ist zu ändern Sie die
setText()
Methode derTextField1
Komponente mitappend()
.Es funktioniert! Die übrigen werden es tun! Versuchen Sie es einmal.
Sehr einfaches Programm in
C
Liste aller armstrong-Zahl zwischen 1 zu 1000000.