Đối
với bất cứ ai đã từng bước chân vào một ngôn ngữ lập trình thì vòng lặp là điều
không thể thiếu nhưng ở đây mình xin nói đến vòng lặp while của ngôn ngữ C/C++.
ĐỀ
BÀI:
Cho hàm F(x), x ≥ 0 được định nghĩa như sau:
F(x) =
x, nếu x ≤ 9
F(x) =
F(S(x)), nếu x > 9
Trong đó
S(x): tổng các chữ số của x.
CÁCH SUY LUẬN:
-
Như các
bạn thấy ở đây hàm số f(x)=x khi x≤ 9 nếu x>9 thì việc tính S(x) phải được
thực hiện cho đến khi x’ ≤ 9 è việc
tính S(x) phải được lặp cho đến khi x≤ 9
è Việc sử
dụng while hay do
while sẽ tốt hơn
for do số lần lặp chưa xác định.
-
Việc cần
làm thứ 2 là làm ra hàm S(x) cũng là lặp nhiệm vụ sau:
oSum_num = Sum_num+ (x % 10);
oX= x/10
Lưu ý: hai phép “ % “ (mod) & “ / ” (div) chỉ
được dùng đúng với nghĩa mod, div khi x
là số nguyên.
BÀI GIẢI THAM KHẢO:
#include
#include
long tongcso(int x)
{
long kq;
kq=0;
while (x !=0)
{
kq=kq+(x
% 10);
x=x/10;
}
return kq;
}
void main()
{
long x,x0;
printf(" nhap vao so x");
scanf("%ld",&x);
x0=x;
while (x>9)
{
x=tongcso(x);
}
printf(" ket qua ham f(%ld)= %ld ",x0,x);
}
Không có nhận xét nào:
Đăng nhận xét