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 de entrada, que está em dias, dividimos esse valor por 365, salvando o resultado em um inteiro 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 para que o resto não seja considerado. Por fim, subtraímos os dois resultados anteriores, , do total inicial, . 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:
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#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 | |
} |