Nhập nó nguyên N và tính giá trị hàm F dưới đây:
Hỏi về thuật toán lập trình c tính căn lồng
Ví dụ n = 5, nếu giải tay thì bạn sẽ làm như thế nào
Bạn nên đăng code của bạn lên đây chứ chỉ đăng câu hỏi thế không đúng quy tắc của công đồng daynhauhoc đâu ạ : D.
Đây là code của mình ạ
#include <stdio.h>
#include <conio.h>
#include <math.h>
int main()
{
int N,i;
float s=0;
do {
printf("N = ");
scanf("%d",&N);
} while(N<=0);
for(i=1;i<=N;i++) {
s=sqrt((s+sqrt(i)));
}
printf("F(n) = %f",s);
return 0;
}
em nghĩ mãi không biết sửa kiều gì ạ
Bạn sai chỗ thuật toán rồi, bạn xem chỗ vòng lặp for, lần lặp thứ nhất i=1 thì s lúc đó bằng gì, lần lặp thứ 2 i=2 thì lúc đó s là biểu thức gì,… Như code của bạn thì tính một cái F(n) hoàn toàn khác với đề bài cho
Đây là code sau khi mình sửa ạ
#include <stdio.h>
#include <conio.h>
#include <math.h>
int main()
{
int N,i;
float s=0;
do {
printf("N = ");
scanf("%d",&N);
} while(N<=0);
for(i=N;i>=1;i--) {
s=sqrt(i+s);
}
printf("F(n) = %f",s);
return 0;
}
sử dụng hàm đệ quy đơn giản hơn nhiều nhé bro!
#include<stdio.h>
#include<math.h>
double tong(int n)
{
if (n==1)
return 1;
else
return (sqrt(n)+tong(n-1));
}
int main()
{int n;
printf(" nhap so phan tu n ");
scanf("%d",&n);
printf(" ket qua la : %lf",tong(n));
}
@Chi_Minh_Nguyen, @dontforgetme161 các bạn nên định dạng mã markdown. Mình đã sửa cho các bạn, lần sau chú ý.
Đệ quy sai rồi bro.
Đề bài nay mình nghĩ không dùng được đệ quy
Theo công thức truy hồi thì phải dừng lại ở n chứ không phải ở 1, nên chỉ có đệ quy đuôi thôi