Informática, perguntado por weslleywill1995, 1 ano atrás

URI Online Judge | 1021
Notas e Moedas

Leia um valor de ponto flutuante com duas casas decimais. Este valor representa um valor monetário. A seguir, calcule o menor número de notas e moedas possíveis no qual o valor pode ser decomposto. As notas consideradas são de 100, 50, 20, 10, 5, 2. As moedas possíveis são de 1, 0.50, 0.25, 0.10, 0.05 e 0.01. A seguir mostre a relação de notas necessárias.

Anexos:

Soluções para a tarefa

Respondido por Usuário anônimo
6

#include <stdio.h>

int main()

{

   double A, E;

   scanf ("%lf",&A);

   int N,a,b,c,d,e,f,g,h,i,j,k,l,B,m,n,o,p,q,r,s,t,u;

   N=A;

   a=N/100;

   b=N%100;

   c=b/50;

   d=b%50;

   e=d/20;

   f=d%20;

   g=f/10;

   h=f%10;

   i=h/5;

   j=h%5;

   k=j/2;

   l=j%2;

   E=A*100;

   B=(int) E;

   m=B%100;

   n=m/50;

   o=m%50;

   p=o/25;

   q=o%25;

   r=q/10;

   s=q%10;

   t=s/5;

   u=s%5;

   printf ("NOTAS:\n");

   printf ("%d nota(s) de R$ 100.00\n",a);

   printf ("%d nota(s) de R$ 50.00\n",c);

   printf ("%d nota(s) de R$ 20.00\n",e);

   printf ("%d nota(s) de R$ 10.00\n",g);

   printf ("%d nota(s) de R$ 5.00\n",i);

   printf ("%d nota(s) de R$ 2.00\n",k);

   printf ("MOEDAS:\n");

   printf ("%d moeda(s) de R$ 1.00\n",l);

   printf ("%d moeda(s) de R$ 0.50\n",n);

   printf ("%d moeda(s) de R$ 0.25\n",p);

   printf ("%d moeda(s) de R$ 0.10\n",r);

   printf ("%d moeda(s) de R$ 0.05\n",t);

   printf ("%d moeda(s) de R$ 0.01\n",u);

   return 0;

}

Respondido por ComputaçãoEng
2

Resposta:

JavaScrip (Explicação abaixo):

let [ value ] = lines.map( Number )

let options = [

 100, 50, 20, 10, 5, 2,

 1, 0.5, 0.25, 0.1, 0.05, 0.01

]

let pCedula = true

let pMoeda = true

options.forEach ( ( opt ) => {

let quantidade = Math.floor ( value / opt )

value = ( value % opt ).toFixed( 2 )

if ( opt > 1 ) {

   if ( pCedula ) {

     console.log( "NOTAS:" )

     pCedula = false

   }

   console.log( `${ quantidade } nota(s) de R$ ${ opt.toFixed( 2 ) }` )

} else {

   if ( pMoeda ) {

     console.log( "MOEDAS:" )

     pMoeda = false

   }

   console.log( `${ quantidade } moeda(s) de R$ ${ opt.toFixed( 2 ) }` )

}

} )

Explicação:

value recebe o valor do input e usa o map( Number ) para transformar a entrada em um número

options recebe uma lista de valores referente a cada nota e moeda possível

pMoeda e pCedula são para verificar se é a primeira moeda/cédula e escrever no console

forEach passa por cada valor de options passando o valor atual para uma variável opt.

quantidade recebe o valor de notas mínimas da nota atual para o valor inteiro da divisão de value / opt

value agora recebe o valor do resto da divisão pelo valor da nota atual ( value % opt ) usando a função toFixed( 2 ) para realizar o arredondamento das 2 casas decimais evitando erros causados por essas casas decimais

if decide se a saída será de uma cédula ou se será de uma moeda.

Perguntas interessantes