Tìm K chữ số cuối của của MN (0 < K ≤ 9). Ví dụ : K = 2, M = 2, N = 10, ta có 2^10 = 1024, như vậy hai chữ số cuối cùng của 1024 là 24. code c++ các bác giúp em với
2 câu trả lời
#include<bits/stdc++.h>
using namespace std;
int main()
{
long long m,z=1,n,k;
cin>>k>>m>>n;
k=pow(10,k);
for(int i=1;i<=n;i++)
{
z*=m;
z%=k;
}
cout<<z;
}
// Giới hạn cho code :((: m, n < 2^63
// Thuật sử dụng: Lũy thừa nhị phân :((
#include <iostream>
#include <cmath>
using namespace std;
typedef long long ll;
ll n, m, k;
ll pow(ll a,ll n,ll mod) {
ll res = 1;
while (n) {
if (n & 1) res = (res * a) % mod;
a = (a * a) % mod;
n >>= 1;
}
return res;
}
int main() {
cin >> k >> m >> n;
cout << pow(m, n, ll(pow(10, k)));
}
Câu hỏi trong lớp
Xem thêm