A ideia deste problema é ir utilizando divisões e restos de divisão para ir dividindo o número recebido em pedaços adequados de acordo com o enunciado, mais ou menos como faríamos se fôssemos resolver esse problema na vida real.
Por exemplo, com o número 576, seguimos o seguinte raciocínio:
R$ 576,00 precisa de 5 notas de R$ 100,00 porque 576/100 = 5 (divisão inteira).
Beleza, representamos 500, então agora sobra 76.
R$ 76,00 precisa de 1 nota de R$ 50,00 porque 76/50 = 1.
OK, agora temos 26.
R$ 26,00 precisa de 1 nota de R$ 20,00 porque 26/20 = 1.
Temos 6.
R$ 6,00 precisa de 0 nota de R$ 10,00 porque 6/10 = 0.
Continuamos com 6.
R$ 6,00 precisa de 1 nota de R$ 5,00 porque 6/5 = 1.
Agora só sobrou 1.
R$ 1,00 precisa de 0 nota de R$ 2,00 porque 1/2 = 0.
Continua sobrando 1.
Agora o que sobrou é o que dá para representar com 1 nota de R$ 1,00.
Dessa maneira, nossa resposta final são 5 notas de R$ 100,00, 1 nota de R$ 50,00, 1 de R$ 20,00, 1 de R$ 5,00 e 1 de R$ 1,00. Experimente com outros valores de N e veja que pegar as divisões inteiras e seus respectivos restos forma um raciocínio interessante para a resolução deste e dos próximos problemas subsequentes.
#include <stdio.h>
int main(){
int N;
scanf("%d", &N);
printf("%d\n", N);
printf("%d nota(s) de R$ 100,00\n", N/100);
N %= 100;
printf("%d nota(s) de R$ 50,00\n", N/50);
N %= 50;
printf("%d nota(s) de R$ 20,00\n", N/20);
N %= 20;
printf("%d nota(s) de R$ 10,00\n", N/10);
N %= 10;
printf("%d nota(s) de R$ 5,00\n", N/5);
N %= 5;
printf("%d nota(s) de R$ 2,00\n", N/2);
N %= 2;
printf("%d nota(s) de R$ 1,00\n", N);
return 0;
}
#include <iostream>
using namespace std;
int main(){
int N;
cin >> N;
cout << N << endl;
cout << N/100 << " nota(s) de R$ 100,00" << endl;
N %= 100;
cout << N/50 << " nota(s) de R$ 50,00" << endl;
N %= 50;
cout << N/20 << " nota(s) de R$ 20,00" << endl;
N %= 20;
cout << N/10 << " nota(s) de R$ 10,00" << endl;
N %= 10;
cout << N/5 << " nota(s) de R$ 5,00" << endl;
N %= 5;
cout << N/2 << " nota(s) de R$ 2,00" << endl;
N %= 2;
cout << N << " nota(s) de R$ 1,00" << endl;
return 0;
}
let input = require("fs").readFileSync("/dev/stdin", "utf8");
let lines = input.split("\n");
let N = parseInt(lines.shift());
console.log(N);
console.log(`${Math.floor(N / 100)} nota(s) de R$ 100,00`);
N %= 100;
console.log(`${Math.floor(N / 50)} nota(s) de R$ 50,00`);
N %= 50;
console.log(`${Math.floor(N / 20)} nota(s) de R$ 20,00`);
N %= 20;
console.log(`${Math.floor(N / 10)} nota(s) de R$ 10,00`);
N %= 10;
console.log(`${Math.floor(N / 5)} nota(s) de R$ 5,00`);
N %= 5;
console.log(`${Math.floor(N / 2)} nota(s) de R$ 2,00`);
N %= 2;
console.log(`${N} nota(s) de R$ 1,00`);
N = int(input())
print(N)
print(f"{N//100} nota(s) de R$ 100,00")
N %= 100
print(f"{N//50} nota(s) de R$ 50,00")
N %= 50
print(f"{N//20} nota(s) de R$ 20,00")
N %= 20
print(f"{N//10} nota(s) de R$ 10,00")
N %= 10
print(f"{N//5} nota(s) de R$ 5,00")
N %= 5
print(f"{N//2} nota(s) de R$ 2,00")
N %= 2
print(f"{N} nota(s) de R$ 1,00")