Computer >> 컴퓨터 >  >> 프로그램 작성 >> Java

함수를 사용하여 간격 사이에 암스트롱 숫자를 표시하는 Java 프로그램

<시간/>

이 기사에서는 함수를 사용하여 간격 사이에 암스트롱 숫자를 표시하는 방법을 이해합니다. 암스트롱 수는 자신의 자릿수 세제곱의 합과 같은 수입니다.

정수를 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

여기에서 입력은 프롬프트에 따라 사용자가 입력하고 있습니다. 우리코딩 그라운드 도구에서 이 예제를 라이브로 사용해 볼 수 있습니다. 함수를 사용하여 간격 사이에 암스트롱 숫자를 표시하는 Java 프로그램 .

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