Ir para conteúdo
cascas

Verificar se os dígitos de um numero são ímpares.

Recommended Posts

como posso escrever uma função que recebe um numero inteiro positivo e devolve um inteiro que é apenas constituído pelos os dígitos ímpares do numero original. Por exemplo, para o numero 12666458 será devolvido o valor 15. Garanta que o inteiro fornecido tem pelo menos um digito ímpar. Se o numero não tiver dígitos ímpares, a função devolve -1.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você pode pegar o valor de entrada, separar ele para depois verificar 1 a 1 se é ímpar ou não e assim ir concatenando cada elemento ímpar em uma variável.

 

edit: Postei errado, achei que fosse em php.

Compartilhar este post


Link para o post
Compartilhar em outros sites
21 horas atrás, kim.y disse:

Você pode pegar o valor de entrada, separar ele para depois verificar 1 a 1 se é ímpar ou não e assim ir concatenando cada elemento ímpar em uma variável.

 

edit: Postei errado, achei que fosse em php.

 

Independentemente da linguagem, a lógica é essa.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá, aqui vai um exemplo usando List Comprehensions:

obs: O código não testa o tipo de entrada ou se o número é negativo.

 

def returnOdd(num):
    odds = [x for x in str(num) if int(x) % 2 != 0]
    return int("".join(odds)) if len(odds) > 0 else  -1

#Testes:
#print returnOdd(123456789)
#print returnOdd(246) 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora

  • Conteúdo Similar

    • Por Sandson Costa
      Pessoal eu tenho um trabalho na qual eu devo reproduzir a seguinte tabela: Eu não tenho muito conhecimento em python e estou dando o meu melhor para tentar reproduzir ela. Mas estou conseguindo retornar somente desta maneira. Minhas dúvidas são as seguintes:
      O mês eu não sei como colocar na ordem crescente e nem retirar o 0 no final. Do saldo inicial ao saldo final eu consigo imprimir, o problema é que ele imprime até 0. Não sei a lógica da prestação. Não sei a lógica dos Juros (quadro verde). Não sei a lógica dos juros mensais (quadro vermelho). Não sei como imprimir o saldo final (que nesse caso é o inverso do saldo inicial). Segue abaixo o meu código:
      # enconding: utf-8 ######################################## # VERSÃO UTILIZADA: Python 3.6.5 # # DISCIPLINA: Introdução à Programação # ######################################## ######################################### # Informações de entrada dada pelo user # ######################################### import os valor_financiamento = float ( input ("1. Informe o valor a ser financiado: ")) os.system("cls") prazo = int ( input ("2. Informe o prazo de quitação do financiamento (em meses): ")) os.system("cls") taxa_juros_anual = float (input ("3. Informe a taxa de juros anual (em %): ")) os.system("cls") # Início da programação e cálculo # USO DO SISTEMA SAC # O cálculo da amortização é realizado pelo valor do financiamento divido pela quantidade de meses amortizacao = valor_financiamento / prazo saldo_devedor = valor_financiamento - amortizacao taxa_mensal = taxa_juros_anual / prazo juros_mes = (taxa_juros_anual - 1 + 1 ) * amortizacao * taxa_mensal prestacao = amortizacao + juros_mes #valor_financiamento = str (valor_financiamento).replace('.',',') #print ("AMORTIZAÇÃO: R$ %.2f" % amortizacao) #print ("VALOR DO FINANCIAMENTO: R$ %.2f\n\n" % valor_financiamento) print ("\t FINANCIAMENTO = R$ %.2f \t MESES: %i meses \t TAXA: %i%% ano (%.f%)" % (valor_financiamento, prazo, taxa_juros_anual, juros_mes)) print ("\t","-"*80,"\n") print ("\t MÊS\tSALDO INICIAL\tPRESTAÇÃO\tAMORTIZAÇÃO\tJUROS\tSALDO FINAL") print ("\t ---\t-------------\t---------\t-----------\t-----\t-----------") print ("\t%4.i \t %12.2f \t\t\t %10.2f" % (prazo, valor_financiamento, amortizacao)) for p in range(prazo): while (valor_financiamento > 1): valor_financiamento = valor_financiamento - amortizacao # Saldo devedor prazo = prazo - 1 # Referência do mês saldo_devedor = valor_financiamento - amortizacao saldo_final = saldo_devedor - amortizacao print ("\t%4.i \t %12.2f \t\t\t %10.2f" % (prazo, valor_financiamento, amortizacao)) #% valor_financiamento) #print (prazo) Essa questão é uma questão de financiamento imobiliário segundo o sistema SAC:
      Questão
      Construa um programa que gere uma tabela com os valores das prestações mensais de um financiamento, discriminando os valores referentes à amortização e aos juros a serem pagos até a amortização total do financiamento. Este programa deve apresentar um menu de opções e pedir as seguintes informações ao usuário: Valor financiado, Prazo (em meses) para quitação do financiamento, Taxa de juros anual (em percentual) e o Sistemática de pagamento mensal das prestações (Sistema de Amortização Constante – SAC ou Sistema PRICE - ver nota explicativas em anexo). Funcionalidades adicionais serão bem vindas!
      O valor de um financiamento deve ser restituído (amortizado) ao financiador em certo período de tempo, acrescido dos juros. Amortizar significa reduzir o valor da dívida, ou seja, pagar uma parte da dívida periodicamente para que ela reduza de tamanho até a sua eliminação. Como a dívida implica em cobrança de juros, para amortiza-la é necessário que a prestação seja maior que os juros cobrados em cada período, ou seja, AMORTIZAÇÃO = PAGAMENTO – JUROS (o valor amortizado é o que sobra depois de descontados os juros). Os juros só incidem sobre o saldo devedor, onde SALDO DEVEDOR = DÍVIDA INICIAL – VALOR AMORTIZADO. As formas de amortizar financiamentos são denominados de “Sistemas de Amortização”.
      Sistema de Amortização Constante (SAC): Neste sistema, o saldo devedor é reembolsado periodicamente em valores de amortização iguais. Desta forma, o valor das prestações é decrescente, já que os juros diminuem a cada prestação. O valor da amortização é calculado dividindo-se o valor do principal (valor do financiamento) pelo número de períodos de pagamento, ou seja, de parcelas. Assim,
       Valor da amortização: AMORTIZAÇÃO = PRINCIPAL / N
       Valor dos juros no mês T: JUROST = (N - T + 1) * AMORTIZAÇÃO * TAXA
       Valor da parcela em T: PRESTAÇÃOT = AMORTIZAÇÃO + JUROST
      onde: PRINCIPAL é o valor do financiamento, N é o número de meses do financiamento, T denota o mês em questão e TAXA é a taxa de juros mensal (que deve ser obtida a partir da taxa anual).
      Se alguém puder me ajudar pelo menos com a lógica. Já é um grande começo.
    • Por Fernando Bastos
      # Function: Probability Matrix   def city_probability (attractiveness, thau, city = 0, alpha = 1, beta = 2, city_list = []):   probability = pd.DataFrame(0, index = attractiveness.index, columns = ['atraction','probability','cumulative_probability'])   for i in range(0, probability.shape[0]):   if (i+1 not in city_list):   probability.iloc[i, 0] = (thau.iloc[i, city]**alpha)*(attractiveness.iloc[i, city]**beta)   for i in range(0, probability.shape[0]):   if (i+1 not in city_list and probability['atraction'].sum() != 0):   probability.iloc[i, 1] = probability.iloc[i, 0]/probability['atraction'].sum()   if (i == 0):   probability.iloc[i, 2] = probability.iloc[i, 1]   else:   probability.iloc[i, 2] = probability.iloc[i, 1] + probability.iloc[i - 1, 2]       if (len(city_list) > 0):   for i in range(0, len(city_list)):   probability.iloc[city_list-1, 2] = 0.0       return probability
       
      Obrigado pessoal!
    • Por Tomaz Pontes
      Ola pessoal, antes de tudo nao sou um usuario avancado de python, o que sei e o que preciso sao coisas basicas que envolvam lacos de repeticao e codigos simples para um trabalho de primeiro semestre de faculdade. Desenvolvi um programa de cadastros de funcionarios, porém um trecho do codigo de consulta ficou muito extenso, preciso de vossa ajuda e sugestoes para comprimi-lo. O arquivo esta aqui nesse post do Imgur:
      https://imgur.com/a/6h0vRS9
      Desde ja, obrigado 
    • Por abrantes004
      x = []
      y = []
      posicao = 3
      for i in range (posicao):
          x.append (int(input("Digite valor de posicao x: ")))
      for i in range (posicao):    
          y.append (int(input("Digite valor de posicao y: ")))
          cont = i + 1    
      if cont == posicao:         
          z = [x[0]+y[0], x[1]+y[1], x[2]+y[2]]
          print (z)
          Em vez de ficar sempre "Digite valor de posicao x: " ou "Digite valor de posicao y: ", queria colocar "Digite valor de posicao x1: ",
      "Digite valor de posicao x2: " etc..
    • Por Matheus Palma
      Resolvi criar um discord especializado e focado em python para a comunidade se ajudar! 
      Nao vi nenhum discord brasileiro oficial, vamos crescer rapaziada.   https://discord.gg/naFC5m3 https://discord.gg/naFC5m3 https://discord.gg/naFC5m3 https://discord.gg/naFC5m3 https://discord.gg/naFC5m3 https://discord.gg/naFC5m3
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.