Em có đoạn code này mà em nghĩ miết không ra lỗi ạ. Mong có ai cao nhân chỉ dùm em ạ.
BÀI này tìm tổng
Lỗi như thế này ạ : em nhập vào số 30 thì nó hiện ra " nan " ạ .
#include <iostream>
#include<cmath>
int giaithua(int i)
{
if(i==1) return 1;
return (i*(giaithua(i-1)));
}
void TinhTong_11(int n, double &S)
{
for(int i=1;i<=n;i++)
{
S=sqrt(giaithua(i)+S);
}
}
int main() {
int n;
double S;
std::cin >> n;
TinhTong_11(n, S);
std::cout << S;
return 0;
}

nên tính sẽ ko đúng. Tính nguyên con một lúc thì đến float còn không đủ (chạm trần). Vậy double là đúng.

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