Computer >> 컴퓨터 >  >> 프로그램 작성 >> C 프로그래밍

C에서 가장 큰 홀수 자리를 갖는 N의 곱


N이 주어졌을 때 가장 큰 홀수 자리를 곱해야 합니다. 홀수가 없으면 -1을 출력합니다.

N을 "153"으로 초기화했고 이 숫자에서 가장 큰 홀수 자리는 5이므로 결과는 153과 5, 즉 153 * 5 =765의 곱이 될 것이며 숫자에 246과 같은 홀수가 없는 경우 출력은 다음과 같아야 합니다. -1이 됩니다.

입력 - N =198

출력 − 1782

설명 − 198 * 9 =1782

입력 - N =15382

출력 − 76910

설명 − 15382 * 5 =76910

아래에 사용된 접근 방식은 문제를 해결하기 위해 다음과 같습니다 -

  • N을 입력하세요.

  • 모든 자릿수를 탐색하고 홀수 자릿수 찾기

  • 가장 큰 홀수 요소를 찾습니다.

  • 원래 숫자 N으로 가장 큰 오프 요소를 구합니다.

  • 홀수 요소가 없으면 -1로 업데이트합니다.

  • 결과를 반환합니다.

알고리즘

Start
In function int largestodd(int n)
   Step 1→ Declare and Initialize large as -1
   Step 2→ Loop While n > 0
      Set digit as n % 10
      If digit % 2 == 1 && digit > large then,
         Set large as digit
      Set n as n / 10
   Step 3→ Return large
In function int findproduct(int n)
   Step 1→ Declare and Initialize large set largestodd(n)
   Step 2→ If large == -1 then,
      Return -1
   Step 3→ Return (n * large)
In function int main()
   Step 1→ Initialize n as 15637
   Print the results from calling findproduct(n)
Stop
호출 결과 출력

예시

#include <stdio.h>
int largestodd(int n){
   // If all digits are even then
   // we wil return -1
   int large = -1;
   while (n > 0) {
      // checking from the last digit
      int digit = n % 10;
      // If the current digit is odd and
      // is greater than the large
      if (digit % 2 == 1 && digit > large)
         large = digit;
      n = n / 10;
   }
   // To return the maximum
   // odd digit of n
   return large;
}
int findproduct(int n){
   int large = largestodd(n);
   // If there are no odd digits in n
   if (large == -1)
      return -1;
   // Product of n with its largest odd digit
   return (n * large);
}
int main(){
   int n = 15637;
   printf("%d\n", findproduct(n));
   return 0;
}

출력

위의 코드를 실행하면 다음 출력이 생성됩니다 -

109459