Friday, July 10, 2020

Tổng hợp bài tập về hàm trong C

Xin chào mừng các bạn đến với blog thủ thuật lập trình của chúng tôi, bài học tiếp theo tôi sẽ giới thiệu cho các bạn về tổng hợp bài tập về hàm trong C, chúng tôi đã sưu tầm, chọn lọc những bài tập có liên quan để các bạn có thể tham khảo để hiểu rỏ hơn về hàm trong C, sau đây là những bài tập liên quan.
Tổng hợp bài tập về hàm trong C


  • Hiển thị tất cả các số nguyên tố giữa hai Khoảng
  • Kiểm tra số nguyên tố trong C
  • Kiểm tra số đối xứng trong C
  • Kiểm tra xem một số có thể được biểu thị bằng tổng của hai số nguyên tố không
  • Tìm tổng các số tự nhiên bằng cách sử dụng đệ quy
  • Tính giai thừa của một số bằng cách sử dụng đệ quy
  • Tìm USCLN,BSCNN bằng cách sử dụng đệ quy
  • Đảo ngược một câu sử dụng đệ quy
  • Tính số mũ của một số bằng cách sử dụng đệ quy
  • Chuyển đổi số nhị phân thành số thập phân và ngược lại
  • Chuyển đổi một số bát phân thành số thập phân và ngược lại
  • Chuyển đổi số nhị phân thành bát phân và ngược lại
Và sau đây chúng tôi sẽ giải những bài tập trên, nếu như các bạn có lời giải nào hay hãy comment bên dưới nhé.

Hiện thị tất cả các số nguyên tố giữa 2 khoảng

Để giải được bài toàn này các bạn có thể hiểu rõ về vòng lặp for trong C 

#include <stdio.h>
int checkPrimeNumber(int n);
int main() {
    int n1, n2, i, flag;
    printf("Enter two positive integers: ");
    scanf("%d %d", &n1, &n2);
    printf("Prime numbers between %d and %d are: ", n1, n2);
    for (i = n1 + 1; i < n2; ++i) {
        // gắn biến flag cho hàm kiểm tra
        flag = checkPrimeNumber(i);
        if (flag == 1)
            printf("%d ", i);
    }
    return 0;
}
// hàm do người dùng tự định nghĩa
int checkPrimeNumber(int n) {
    int j, flag = 1;
    for (j = 2; j <= n / 2; ++j) {
        if (n % j == 0) {
            flag = 0;
            break;
        }
    }
    return flag;
}

Kiểm tra số nguyên tố trong C

Cũng như bài toàn đã giải trên nếu bạn muốn biết cách thực hiện như thế nào thì hãy thao khảo chương trình dưới đây.
#include <stdio.h>
#include <math.h>
int checkPrimeNumber(int n);
int main(){
    int n,i;
    printf("nhap so nguyen n \n");
    scanf("%d",&n);
    if(checkPrimeNumber(n) == 1){
        printf("%d la so nguyen to",n);
    }else{
        printf("khong phai la so nguyen to");
    }
 
}
int checkPrimeNumber(int n){
    int i, flag = 1, squareRoot;
   squareRoot = sqrt(n);
   for (i = 2; i <= squareRoot; ++i) {
      if (n % i == 0) {
         flag = 0;
         break;
      }
   }
   return flag;
}

Kiểm tra số đối xứng trong C

#include <math.h>
#include <stdio.h>
int checkArmstrongNumber(int n);
int main() {
   int n, flag;
   printf("Enter a positive integer: ");
   scanf("%d", &n);
   flag = checkArmstrongNumber(n);
   if (flag == 1)
      printf("%d is an Armstrong number.", n);
   else
      printf("%d is not an Armstrong number.", n);
   return 0;
}
int checkArmstrongNumber(int num) {
   int originalNum, remainder, n = 0, flag;
   double result = 0.0;
   for (originalNum = num; originalNum != 0; ++n) {
      originalNum /= 10;
   }
   for (originalNum = num; originalNum != 0; originalNum /= 10) {
      remainder = originalNum % 10;
      result += pow(remainder, n);
   }
   if (round(result) == num)
      flag = 1;
   else
      flag = 0;
   return flag;
}
kết quả của chương trình trên:
Enter a positive integer: 407
407 is an Armstrong number.

 Kiểm tra xem một số có thể được biểu thị bằng tổng của hai số nguyên tố không

Trong ví dụ này, bạn sẽ học cách kiểm tra xem một số nguyên được nhập bởi người dùng có thể được biểu thị dưới dạng tổng của hai số nguyên tố của tất cả các kết hợp có thể.
Để hiểu ví dụ này, bạn nên có kiến thức về các chủ đề lập trình C sau:
#include <stdio.h>
int checkPrime(int n);
int main() {
    int n, i, flag = 0;
    printf("Enter a positive integer: ");
    scanf("%d", &n);
    for (i = 2; i <= n / 2; ++i) {
        if (checkPrime(i) == 1) {
            if (checkPrime(n - i) == 1) {
                printf("%d = %d + %d\n", n, i, n - i);
                flag = 1;
            }
        }
    }
    if (flag == 0)
        printf("%d cannot be expressed as the sum of two prime numbers.", n);
    return 0;
}
int checkPrime(int n) {
    int i, isPrime = 1;
    for (i = 2; i <= n / 2; ++i) {
        if (n % i == 0) {
            isPrime = 0;
            break;
        }
    }
    return isPrime;
}
Kết quả
Enter a positive integer: 34
34 = 3 + 31
34 = 5 + 29
34 = 11 + 23
34 = 17 + 17

Tìm tổng các số tự nhiên bằng cách sử dụng đệ quy 

Trong ví dụ này, bạn sẽ học cách tìm tổng các số tự nhiên bằng cách sử dụng hàm đệ quy.
#include <stdio.h>
int addNumbers(int n);
int main() {
    int num;
    printf("Enter a positive integer: ");
    scanf("%d", &num);
    printf("Sum = %d", addNumbers(num));
    return 0;
}
int addNumbers(int n) {
    if (n != 0)
        return n + addNumbers(n - 1);
    else
        return n;
}
Kết quả
Enter a positive integer: 20
Sum = 210
Còn một số bài tập các bạn có thể tham khảo bài viết sau, mình sẽ giải nếu các bạn cần, hãy comment cho mình nhé. 

No comments:

Post a Comment