Skip to content

Instantly share code, notes, and snippets.

@anitainfo
Created June 17, 2020 01:35
Show Gist options
  • Save anitainfo/a2f6fe3cff01ba0abaff1d793aa37649 to your computer and use it in GitHub Desktop.
Save anitainfo/a2f6fe3cff01ba0abaff1d793aa37649 to your computer and use it in GitHub Desktop.
#include<bits/stdc++.h> //biblioteca utilizada
using namespace std;
int acao(int n, int k) //função 'acao' que recebe dois inteiros
{
if(n<=k)return 1; //se 'n' menor ou igual a 'k' retorna 1
if(n%2==0)return acao(n/2,k) + acao(n/2,k); //se 'n' é par retorna 'acao' de metade de 'n' + 'acao' de metade de 'n'
else return acao(n/2,k)+acao(n/2+1,k); //se 'n' é ímpar retorna 'acao' de metade de 'n' + 'acao' de metade de 'n' + 1
}
int main()
{
int n,k; //declara variáveis
scanf("%d %d", &n, &k); //lê o primeiro caso de teste
while(n!=0 && k!=0) //enquanto a entrada for diferente de 0
{
printf("%d\n", acao(n,k)); //imprimi o resultado da função 'acao' de 'N' e 'K'
scanf("%d %d", &n, &k); //lê um novo caso de teste
}
return 0; //retorna a 0
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment