</p><p>
Take the input N.
Traverse every digit and look for odd digits
Find the largest odd element.
Product the largest off element with the original number N.
If there is no odd element update result with -1.
Return the result.
Algorithm
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
Example
演示
#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</p><p>", findproduct(n));
return 0;
}
输出
如果运行上述代码,将会生成以下输出−
109459