Thứ Ba, 20 tháng 11, 2012

VÒNG LẶP WHILE TRONG C/C++


     Đố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