Giải thích dòng code c++ (có liên quan đến toán học)

Bài làm.

#include<bits/stdc++.h>
using namespace std;
long long a,n;
long long mu(long long a,long long n)
{
	long long s=1;
	for(int i=1;i<=n;i++)
	s=s*a;
	return s;
}
int main()
{
 cin>>a>>n;
 cout<<mu(a,n);
 	
}

Mình cần giải thích, vì sao lại là s=s*a;?
thanks mn

Thế bạn biết phép tính mũ thì quy về phép nhân là thế nào không?

4 Likes

Tại sao lại dùng long long vậy? Mình thấy có tính toán là cứ quăng cho cái biến data type to nhất. Double đã là quá nhiều trong môi trường học đường rồi.

Lặp i=1: s = s.a = 1.a = a
Lặp i=2: s = s.a = a.a = a^2
Lặp i=3: s = s.a = a.a.a = a^3
Lặp i=n: s = s.a = a.a.a…a = a^n

Nên dùng debug tool, có breakpoint sẽ biết các giá trị trong vòng lặp hơn. Bạn search cách debug trên ide, kỹ năng này khá hay cho những người mới học code.

3 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?