백준 바킹독 재귀 모음 - 1629 곱셈,
2022. 9. 7. 13:41ㆍ코딩 공부 연습
반응형
1629 곱셈
#include <stdio.h>
#include <algorithm>
#include <iostream>
#include <vector>
using namespace std;
long long pow(long long a, long long b , long long c)
{
//b가 홀수면 ,
if (b == 1)
return a%c;
long long val = pow(a, b/2, c);
val = val*val%c;
if (b%2 == 0) return val;
return val * a % c;
}
int main()
{
long long a,b,c;
cin>>a>>b>>c;
cout<<pow(a,b,c);
}
난 재귀가 너무 어렵다 엉엉
11729번
#include <stdio.h>
#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;
long long cnt = 0;
void func2(int a, int b, int n)
{
cnt++;
if(n==1)
return ;
func2(a, 6-a-b, n-1);
func2(6-a-b, b, n-1);
}
void func(int a, int b, int n)
{
cnt++;
if(n==1)
{
cout<<a<< ' '<< b<<'\n';
return ;
}
func(a, 6-a-b, n-1);
cout<<a<< ' ' << b << '\n';
func(6-a-b, b, n-1);
}
int main()
{
int n;
cin>>n;
func2(1,3,n);
cout<<cnt<<'\n';
func(1,3,n);
}
이거 횟수 구하는거는 2^k -1 인데 좀 일찍 생각했으면 저렇게 멍청하게 안하고 할 수 있다. 시간 초과나면 고치려 했는데 안뜨니 그냥 넘어갈란다ㅋㅋ
저 2^n -1 은 비트연산으로 가능하다.
(1<<n)-1
1비트씩 왼쪽으로 밀면 2제곱이 된당!
'코딩 공부 연습' 카테고리의 다른 글
프로그래머스 - 주차 요금 계산 (1) | 2022.09.13 |
---|---|
프로그래머스 - k진수에서 소수 개수 구하기! (0) | 2022.09.08 |
소프티어 - H-클린알파 (0) | 2022.09.05 |
소프티어 - 성적평균 (0) | 2022.09.04 |
프로그래머스 - 성격 유형 검사하기 (0) | 2022.09.03 |