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