<문제>
https://softeer.ai/practice/info.do?idx=1&eid=407
Softeer
연습문제를 담을 Set을 선택해주세요. 취소 확인
softeer.ai
바이러스가 숙주의 몸속에서 1초당 P배씩 증가한다.
처음에 바이러스 K마리가 있었다면 N초 후에는 총 몇 마리의 바이러스로 불어날까? N초 동안 죽는 바이러스는 없다고 가정한다.
제약조건
1 ≤ K ≤ 108인 정수1 ≤ P ≤ 108인 정수1 ≤ N ≤ 106인 정수
<제출답안>
#include<iostream>
#include<cmath>
using namespace std;
int main(int argc, char** argv)
{
long long K,P;
int N;
cin>>K;
cin>>P;
cin>>N;
long long answer ;
answer = K;
for(int i=0;i<N;i++)
{ answer *= P;
answer %= 1000000007;
}
cout<<answer;
return 0;
}
단순 구현 문제이다.
그런데 처음에 틀렸다.
중요한 부분은 자료형을 주의할 것.
그리고 overflow를 방지하기위해 한번에 P^N을 하는 짓은 하지말아야한다.
N번을 곱하는 형식으로 가야한다.
한가지더, overflow를 방지하기 위해 매 루프마다 나머지를 구해야한다.
'HSAT > Level2' 카테고리의 다른 글
[C++]Softeer/HSAT Level2 - 전광판 (0) | 2023.08.02 |
---|---|
[C++]Softeer/HSAT Level2- 비밀 메뉴 (0) | 2023.08.02 |
[C++]Softeer/HSAT Level2 - 지도 자동 구축 (0) | 2023.08.02 |
[C++]Softeer/HSAT Level2 - 8단 변속기 (0) | 2023.08.02 |