30/09/2018, 18:31
Kiểm tra giúp em code tính giá trị 2 vế cho trước rồi so sánh kết quả
Đề: Tinh gia trị vế trai, vế phải. Xuất ra kết quả rồi so sánh xem vế trai có bằng vế phải k!
VT: 1^2 + 2^2 + 3^2 +…+ n^2
VP: n*(n+1)*(2n+1)/6
CODE của em:
# include <stdio.h>
# include <conio.h>
# include <math.h>
main ()
{
int i,n,Sohang, S1=0,S2=0;
printf("Nhap vao gia tri n: ");
scanf("%d",&n);
for (i=1;i<=n;i++)
{
Sohang = pow(i,2);
S1 = S1 + Sohang;
}
printf("Gia tri ve trai la: %d
", S1);
S2 = (n*(n+1)*(2*n+1))/6;
printf("Gia tri ve phai la: %d
", S2);
if (S1 = S2)
printf("Ve trai bang ve phai
");
else printf("Ve trai khong bang ve phai
");
}
Bài liên quan
12+ …+n2 =n*(n+1)*(2n+1)/6 la dung
if(S1==S2)
pow(i,2) != i*i
if(S1==S2)
Trong for, bạn có thể viết : S1 += pow(i,2)
@Gio Bạn có thể giải thích tại sao pow(i,2) != i*i được không?
cai pow(I,2) tuc la I^2 do ban. Qui dinh trong C roi nhe ^^
Hàm pow sử dụng kiểu dữ liệu là số thực, mà số thực sẽ có sai số nên sử dụng có thể có kq sai do cách chuyển dữ liệu số thực sang số nguyên. Trong bài tốt nhất viết i*i tránh dc TH đó, code cũng ngắn hơn