package armstrong; import java.util.Scanner; public class armstrong { static int tr; static double tri=0; public static void main(String[] args) { System.out.println("enter a number"); int s; Scanner sc = new Scanner(System.in); s=sc.nextInt(); int b=s; do { tr=s%10; tri=tri+Math.pow(tr,3); s=s/10; } while(s!=0); if(tri==b) System.out.println("the number is armstrong"); else System.out.println("not armstrong"); } }aquí introduje una variable 'b' porque 's' se modificará durante el ciclo do while. ¿Hay alguna forma de usar 's' en lugar de almacenar el valor en otra variable?
Puede usar este programa para obtener el número de Armstrong:
import java.util.Scanner; class ArmstrongNumberChecker { public static void main(String[] args) { int c = 0, a, temp,n; System.out.print("enter a number:"); Scanner sc = new Scanner(System.in); n = sc.nextInt(); temp = n; while (n > 0) { a = n % 10; n = n / 10; c = c + (a * a * a); } if (temp == c) { System.out.println("armstrong number"); } else{ System.out.println("Not armstrong number"); } } }Sí hay. Haz lo siguiente:
tr = s; do { tri=tri+Math.pow(tr%10,3); tr=tr/10; } while(tr!=0);Y luego,
if(tri==s) System.out.println("the number is armstrong"); else System.out.println("not armstrong"); Tenga en cuenta que utilicé directamente tr%10 en el cálculo para esto.