이 기사에서는 함수를 사용하여 간격 사이에 암스트롱 숫자를 표시하는 방법을 이해합니다. 암스트롱 수는 자신의 자릿수 세제곱의 합과 같은 수입니다.
정수를 n차의 암스트롱 수라고 하며 모든 자릿수가 분리되고 세제곱되고 합산된 경우 합계는 숫자와 동일합니다. 즉, abcd... =a3 + b3 + c3 + d3 + ...
Armstrong 숫자가 3자리인 경우 각 숫자의 세제곱합은 숫자 자체와 같습니다. 예:153은 암스트롱 번호입니다.
153 = 13 + 53 + 33
예:371은 암스트롱 번호입니다.
371 = 27 + 343 + 1
아래는 동일한 데모입니다 -
입력
입력이 -
라고 가정합니다.The two inputs : 1 and 500
출력
원하는 출력은 -
The Armstrong numbers are: 153 370 371 407
알고리즘
Step 1 - START Step 2 - Declare three integer values namely my_low, my_high and i Step 3 - Read the required values from the user/ define the values Step 4 - Define a function IsArmstrong which takes an integer value returns Boolean value. Step 5- In this function, Divide the input variable by 10 and get remainder for ‘check’ . Step 6 - Then Multiply ‘my_rem thrice, and add to ‘my_sum’, and make that the current ‘my_sum. Step 7 - Later ‘check’ by 10, and make that the current ‘check’. Compare the ‘my_sum’ with the function input ‘I’ and return true or false. Step 8 - Using a for loop, iterate from my_low to my_high, for each number, call the function IsArmstrong. If true is returned , it is an Armstrong number, store the number Step 9 - Display the result Step 10 - Stop
예시 1
여기에서 입력은 프롬프트에 따라 사용자가 입력하고 있습니다. 우리코딩 그라운드 도구에서 이 예제를 라이브로 사용해 볼 수 있습니다. .
import java.util.Scanner; public class ArmstrongNumbers { public static void main(String[] args) { int my_low, my_high, i; Scanner my_scanner = new Scanner(System.in); System.out.println("Required packages have been imported"); System.out.println("A scanner object has been defined "); System.out.println("Enter the first number :"); my_low = my_scanner.nextInt(); System.out.println("Enter the limit :"); my_high = my_scanner.nextInt(); System.out.println("The Armstrong numbers are :"); for(i = my_low + 1; i < my_high; ++i) { if (IsArmstrong (i)) System.out.print(i + " "); } } public static boolean IsArmstrong(int i) { int check, my_rem, my_sum; my_sum = 0; check = i; while(check != 0) { my_rem = check % 10; my_sum = my_sum + (my_rem * my_rem * my_rem); check = check / 10; } if(my_sum == i){ return true; } return false; } }
출력
Required packages have been imported A scanner object has been defined Enter the first number : 1 Enter the limit : 500 The Armstrong numbers are : 153 370 371 407
예시 2
여기서 정수는 이전에 정의되었으며 그 값은 콘솔에 액세스되어 표시됩니다.
public class ArmstrongNumbers { public static void main(String[] args) { int my_low, my_high, i; my_low = 1; my_high = 500; System.out.println("The starting and ending numbers are defined as " + my_low + " and " + my_high); System.out.println("The Armstrong numbers are :"); for(i = my_low + 1; i < my_high; ++i) { if (IsArmstrong (i)) System.out.print(i + " "); } } public static boolean IsArmstrong (int i) { int check, my_rem, my_sum; my_sum = 0; check = i; while(check != 0) { my_rem = check % 10; my_sum = my_sum + (my_rem * my_rem * my_rem); check = check / 10; } if(my_sum == i){ return true; } return false; } }
출력
The starting and ending numbers are defined as 1 and 500 The Armstrong numbers are : 153 0 371 407