getting only the odd digits in a number with recursion

后端 未结 3 1457
谎友^
谎友^ 2021-01-22 01:08

So my problem is this i have an number like 123 and as the tilte sugests i want the result to be 13.

The problem is that firstly with the method im using im going to get

相关标签:
3条回答
  • 2021-01-22 01:48

    Look at the operation on last line, you are getting the last digit if it is odd and then multiplying it with 10 and adding it to recursion result of next call, I believe that is why it is not working, try the code below, here you are appending the last digit at end always so final number comes in correct order.

    def apenas_digitos_impares(n):
        if n == 0:
            return 0
        elif (n % 10) % 2 == 0:
            return apenas_digitos_impares(n // 10)
        elif (n % 10) % 2 == 1:
            return 10 * apenas_digitos_impares(n // 10) + (n % 10)
    
    0 讨论(0)
  • 2021-01-22 02:05

    You could do it as follows -

    def apenas_digitos_impares(n):
        if n == 0:
            return 0
        elif (n%10)%2 == 0:
            return apenas_digitos_impares(n//10)
        elif (n%10)%2 == 1:
            # Include the digit and recurse for remaining...
            return (n%10) + 10*apenas_digitos_impares(n//10)
            
    print(apenas_digitos_impares(123))
    

    OUTPUT :

    13
    

    The only change that your code needed was in the last line of the function.

    • You will just include the odd digit(done by n%10) and,

    • move on(or recurse) to check for remaining digits. You need to multiply next digit by 10, so - 10*apenas_digitos_impares(n//10)

    0 讨论(0)
  • 2021-01-22 02:05

    I mean, if python is where you want the solution just do;

    Def pluck_even_digits(N):
        str_N = str(abs(N))
    
        for digit in [ 0, 2, 4, 6, 8]:
            str_N.replace( str(digit), “”)
    
        Return int(str_N)
    

    It’s python, you are not restricted to just use pure math. Also, this way allows you to easily choose a base that is not 10 and pluck values from the representation in that new base.

    0 讨论(0)
提交回复
热议问题