Thứ Hai

Tính hàm số F(x)

Đề: 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.

Yêu cầu: Hãy viết chương trình tính F(n!), với 1 <= n <= 500.

Bài giải: 
Với 1  n ≤ 3 thì n! ≤ 9 => F(n!) = n!
Với  n = 4 thì n! > 9 nên F(n!) = F(S(n!)) = 6
Với  n = 5 thì n! > 9 nên F(n!) = F(S(n!)) = 3
Với  n  6 thì n! > 9 nên F(n!) = F(S(n!))
    Nếu F(n!) > 9 thì F(n!) có giá trị F(S(n!)) cứ như thế cho đến khi F(n!) ≤ 9 
    Ta có n! = 1x2x3x4x5x6x...x(n-1)xn = 6!x..x(n-1)xn
    Vì 6! chia hết cho 9 nên n! cũng chia hết cho 9
    Vì "một số chia hết cho 9 thì có tổng các chữ số chia hết cho 9" F(n!) luôn chia hết cho 9 mà F(n!) ≤ 9 nên F(n!) = 9

Mã nguồn:
  1. #include <stdio.h>
  2. void main()
  3. {
  4. int result, n;
  5. scanf_s("%d",&n);
  6. switch (n)
  7. {
  8. case 0:
  9. result=0;
  10. break;
  11. case 1: case 2: case 3:
  12. result=1;
  13. for (int i=1;i<=n;i++) result*=i;
  14. break;
  15. case 4:
  16. result=6;
  17. break;
  18. case 5:
  19. result=3;
  20. break;
  21. default:
  22. result=9;
  23. break;
  24. }
  25. printf("%d",result);
  26. }


0 nhận xét:

Đăng nhận xét