15829_Hashing

bgy·2021년 12월 29일
0

백준

목록 보기
6/21

모듈러 연산 사용

<cmath> pos(,) : 제곱(double형)

정수 자료형 : char, short, int, long, long long

문자열 string에 넣고 배열처럼 꺼내쓰기

#include <iostream> 
#include <vector>

using namespace std;


int main() {
	int M = 1234567891;
	int n;
	cin >> n;
	long long result = 0;
	for (int i = 0; i < n; i++) {
		char ch;
		cin >> ch;
		long long num=ch-'a'+1;

		long long rr=1;
		result = result % M;
		for (int j = 0; j < i; j++) {
			rr =(rr* 31)%M;
		}
		
		result += (num * rr)%M;
	}
	
	cout << result%M;
}
int main() {
	int M = 1234567891;
	int n;
	string s;
	cin >> n>>s;
	int result = 0;
	long long rr = 1;

	for (int i = 0; i < n; i++) {
		result = result % M;

		long long num=s[i]-'a'+1;
		
		
		
		
		result += (num * rr)%M;

		rr = (rr * 31) % M;
	}
	
	cout << result%M;
}

0개의 댓글