Solução Informática - Nível Iniciante - Semana 23

Solução por Anita Ramos

Assim como diz o enunciado, esse problema envolve simples cálculos matemáticos que exigem uma boa lógica, mas funções bem simples.

Iniciando a programação então, depois de adicionar a biblioteca e ler o valor n de entrada, que está em dias, dividimos esse valor por 365, salvando o resultado em um inteiro ano para que o resto não seja considerado. Depois pegamos o resto dessa divisão, utilizando a função de % e dividimos ele por 30 (1 mês). Este resultado também será salvo em um inteiro mes para que o resto não seja considerado. Por fim, subtraímos os dois resultados anteriores, ano+mes, do total inicial, n. Quanto a impressão dos resultados, você pode optar por imprimí-los apenas no final ou logo depois de serem calculados, sendo que eu optei pela segunda opção.

Segue o código comentado para melhor compreensão da solução:


#include<bits/stdc++.h> //biblioteca utilizada
using namespace std;
int main() {
int n; //declarcação de 'n'
scanf("%d", &n); //leitura da entrada
int ano=n/365; //variável 'ano' recebe 'n'/365
printf("%d ano(s)\n", ano); //imprime a quantidade de anos
int mes=(n%365)/30; //variável 'mes' recebe o resto que não dá um ano (365 dias) e divide por 30 (1 mês)
printf("%d mes(es)\n", mes); //imprime a quantidade de meses
int dia=n-(ano*365)-(mes*30); //variável 'dia' recebe o resto de dias que não preencheu nem um ano nem um mes
printf("%d dia(s)\n", dia); //imprime a quantidade de dias
return 0; //retorna a 0
}

view raw

ageindays.cpp

hosted with ❤ by GitHub