tính tổng giai thừa từ a đến b bất kỳ trong c++
em mới học lập trình mong các cao nhân chỉ giáo!!!
Tính tổng các giai thừa từ a đến b bằng for
Mình có các câu hỏi định hướng cho bài tập, mong bạn trả lời:
- Bạn đã biết tính tổng với vòng lặp chưa? Chỉ là tổng đơn thuần như 1+2+3+4+...n.
- Bạn hiểu thế nào là giai thừa. Bạn viết được thuật toán tính giai thừa của một số chưa?
Nếu cả 2 câu bạn đều trả lời được và làm được. Bạn chỉ cần kết hợp lại thì đó chính là đáp án của bài tập.
Còn nếu bạn chỉ làm được một phần nào đó, hãy đưa đoạn bạn làm được để bọn mình chỉ dẫn thêm.
Bình tĩnh nào bạn, sao phải xóa,sai có gì đâu mà sợ.
mik copy thiếu
#include<iostream>
using namespace std;
int main(){
int a, b;
int sum=0, x=1, y=1;
cout<<"nhap a: ";
cin>>a;
cout<<"nhap b: ";
cin>>b;
for(int i=a;i<=b;i++){
x*=i;
}
return 0;
}
Muốn up code lên thì bạn dùng markdown nha, cách dùng:
Bài này là bài tính tổng, tính tổng thì dùng phép cộng nên đoạn này sai:
for(int i=a;i<=b;i++){
x*=i;
}
Theo định nghĩa của Wikipedia về giai thừa:
Trong toán học, giai thừa là một toán tử một ngôi trên tập hợp các số tự nhiên. Cho n là một số tự nhiên dương,“n giai thừa”, ký hiệu n! là tích của n số tự nhiên dương đầu tiên.
Ví dụ: 4! = 4.3.2.1 = 24
Đối với bài này thì bạn cộng giai thừa của mỗi phần tử nằm trong khoảng từ a đến b, ví dụ: a = 2, b = 4
KQ: 2! + 3! + 4! = 2 + 6 + 24 = 32
Bài này cần dùng hai vòng lặp lồng nhau, nếu dùng hàm có sẵn thì chỉ cần một. Ngoài ra thì đối với những con số lớn như giai thừa thì bạn nên dùng một kiểu dữ liệu khác thay thế cho int
như long int
, unsigned long int
,…hoặc dùng luôn cấp phát động (nâng cao).
thế hai vòng for viết như nào vậy bạn
Một thôi vòng lặp thớt viết giờ chạy rà theo += x là xong.