Tam giác Pascal trong C++ sử dụng mảng

Trong bài này các bạn sẽ học và lấy code in tam giác Pascal trong lập trình C. Nhưng trước khi vào chương trình nếu bạn nào chưa biết về tam giác Pascal thì mình khuyên các bạn nên tham khảo mô tả ngắn về tam giác Pascal. Ở đó, trong một thời gian rất ngắn, bạn sẽ có được mọi thứ cần thiết để tạo một chương trình trên đó. Nhưng bây giờ, hình ảnh sau đây nói lên tất cả về nó

pascal triangle c

Hình này định nghĩa tam giác Pascal. Nhưng tôi đã viết thuật toán đơn giản nhất để tạo tam giác Pascal trong bài viết đó

Hãy lập chương trình in tam giác Pascal không dùng hàm hay công thức nào. Chương trình này chỉ tuân theo thuật toán khai triển tam giác Pascal sử dụng vòng lặp và logic

#include
#include
int main()
{
    int row, col, i=1, j=0, arr[5], arrTemp[5];
    arr[0] = 1;
    arr[1] = 1;
    for(row=0; row<5; row++)
    {
        for(col=4; col>row; col--)
            printf(" ");
        for(col=0; col<=row; col++)
        {
            if(row==0)
                printf("1");
            else
            {
                if(col==0 || col==row)
                    printf("1 ");
                else
                {
                    arrTemp[i] = arr[j]+arr[j+1];
                    printf("%d ", arrTemp[i]);
                    i++;
                    j++;
                }
            }
        }
        printf("\n");
        arrTemp[i] = 1;
        if(row>1)
        {
            j=0;
            arr[j]=1;
            for(j=1, i=1; j<=row; j++, i++)
                arr[j] = arrTemp[i];
            i=1;
            j=0;
        }
    }
    getch();
    return 0;
}

Chương trình này được xây dựng và chạy trong Code. Khối IDE. Đây là đầu ra mẫu của nó

c program print pascal triangle

Trong chương trình trước, chúng ta đã sử dụng hai mảng sao cho mảng đầu tiên, arr[], giữ giá trị của cột cho hàng trước đó và mảng thứ hai, arrTemp[], giữ giá trị của cột cho hàng tiếp theo. Đó là,

  • Ban đầu, 1 được khởi tạo thành chỉ mục 0 và 1 cho mảng đầu tiên, giả sử arr[]
  • Đó là, mảng[0] = 1 và mảng[1] = 1
  • Sử dụng mảng này, giá trị cột của hàng tiếp theo được tính theo cách sao cho các giá trị ở chỉ mục thứ 0 và đầu tiên được thêm vào và khởi tạo cho chỉ mục đầu tiên của mảng thứ hai, chẳng hạn như arrTemp[]

Quá trình chạy khô của chương trình trên diễn ra như thế này

  1. Ban đầu, i = 1, j = 0, arr[0] = 1, arr[1] = 1
  2. Sử dụng vòng lặp for, 0 hiện được gán cho hàng (hàng = 0)
  3. Xác định xem nó có nhỏ hơn 5 hay không. Điều kiện đánh giá là đúng, do đó luồng chương trình đi vào bên trong vòng lặp. Bên trong nó, sử dụng vòng lặp for đầu tiên, bốn dấu cách được in ra
  4. Luồng chương trình bây giờ chuyển sang vòng lặp for thứ hai
  5. Ở đó, 0 được đặt thành col (hiện tại col=0)
  6. Kiểm tra xem col có nhỏ hơn hoặc bằng giá trị của hàng hay không
  7. Điều kiện được đánh giá là đúng, do đó, luồng chương trình sẽ đi vào bên trong vòng lặp này. Sử dụng câu lệnh if, kiểm tra xem giá trị của hàng có bằng 0 hay không
  8. Điều kiện được đánh giá là đúng, do đó, luồng chương trình sẽ đi vào bên trong khối if và in 1 trên đầu ra. Khối khác bị bỏ qua
  9. Bây giờ, luồng chương trình sẽ cập nhật một phần của vòng lặp for đầu tiên bên trong, tăng giá trị của col
  10. Bây giờ col=1
  11. Bước xử lý số. 6 với giá trị mới của col
  12. Điều kiện trả về false
  13. Tuyên bố tiếp theo là
    printf("\n");
    Điều này hướng dẫn trình biên dịch bắt đầu các mục đầu ra tiếp theo trên dòng tiếp theo hoặc dòng mới
  14. 1 hiện được khởi tạo thành arrTemp[i], vì giá trị trước đó của i là 1. Kết quả là, mảngTemp[1] = 1
  15. Một khối if được tạo để kiểm tra xem giá trị của hàng có lớn hơn 1 hay không
  16. Nếu điều kiện đánh giá là sai, khối sẽ bị bỏ qua
  17. Và luồng chương trình đi đến phần cập nhật của vòng lặp for bên ngoài. Giá trị của "hàng" được tăng lên
  18. Bây giờ hàng = 1
  19. Bước xử lý số. 3 đến 5
  20. Bước 6 phải được lặp lại với giá trị hàng mới (là 1)
  21. Bây giờ col=0 một lần nữa
  22. Đọc bước không. 7
  23. Điều kiện đánh giá là sai vì hàng không bằng 0
  24. Kết quả là, dòng chương trình tiếp tục đến một khối khác. Bên trong khối khác, nó kiểm tra xem giá trị của col có bằng 0 hay giá trị của hàng hay không
  25. Bởi vì giá trị của nó bằng 0, do đó 1, nó được in
  26. nó làm tăng giá trị của col (bây giờ col = 1)
  27. và xác định xem nó nhỏ hơn hay bằng hàng, điều kiện đánh giá là đúng, luồng chương trình lại đi vào bên trong vòng lặp
  28. Một lần nữa, khối "khác" được thực thi
  29. Và, một lần nữa, điều kiện khối if đánh giá là đúng vì col (1) bằng hàng (1). Do đó, 1 được in lại
  30. Một lần nữa, tăng giá trị của col (hiện tại col = 2) và kiểm tra điều kiện. Lần này, điều kiện đánh giá là sai
  31. Quy trình các bước 13–17
  32. Bây giờ hàng = 2
  33. Bước xử lý số. 3 đến 5
  34. Bước xử lý số. 6 với giá trị mới của hàng (nghĩa là 2)
  35. Bây giờ col=0 một lần nữa
  36. Các bước quy trình không. 7, 23, 24, 25, 26, 27 và 28
  37. Bây giờ col=2
  38. Lần này, điều kiện của "khối if" được đánh giá là sai, do đó, luồng chương trình chuyển sang "khối khác. "
  39. Ở đó, arrTemp[i] = arr[j]+arr[j+1] hoặc arrTemp[1] = arr[0]+arr[0+1] hoặc arrTemp[1] = 1+1 hoặc arrTemp[1] =
  40. Bây giờ i = 2 và j = 1
  41. Đọc bước không. 9
  42. Bây giờ col=3
  43. Bước xử lý số. 6 với giá trị mới của col
  44. Bước xử lý số. 12 đến 15
  45. Điều kiện đánh giá là đúng, do đó, luồng chương trình sẽ đi vào bên trong khối if
  46. Bây giờ j = 0, mảng[j] = 1 hoặc mảng[0] = 1
  47. Vòng lặp for được thực thi. sau khi thực hiện thành công ta sẽ có arr[0] = 1, arr[1] = 2, arr[2] = 1
  48. Bây giờ i = 1 và j = 0
  49. Bước xử lý số. 17
  50. Bây giờ hàng = 3
  51. Quá trình được lặp lại từ bước 33 cho đến khi giá trị của hàng bằng 5. Nghĩa là, điều kiện của vòng lặp for bên ngoài đánh giá là sai

Sử dụng Công thức, in Tam giác Pascal

Bây giờ, hãy tạo một chương trình khác thực hiện công việc tương tự nhưng sử dụng công thức để tìm từng giá trị cột và được in trực tiếp mà không cần nhiều logic như đã đưa ra trong chương trình trên. Nhưng để cải thiện kỹ năng lập trình, tốt hơn là nên tiếp cận cái trước

#include
#include
long int fact(int);
int main()
{
    int i, c;
    for(i=0; i<5; i++)
    {
        for(c=4; c>i; c--)
            printf(" ");
        for(c=0; c<=i; c++)
            printf("%ld ", fact(i)/(fact(c)*fact(i-c)));
        printf("\n");
    }
    getch();
    return 0;
}
long int fact(int n)
{
    int i, res=1;
    for(i=1; i<=n; i++)
        res = res*i;
    return res;
}

Nó sẽ tạo ra đầu ra giống như cái trước. Công thức được đưa ra trong hướng dẫn riêng về tam giác Pascal. Nghĩa là, giá trị cột của mỗi hàng trong tam giác Pascal có thể được tính như sau

value = (row!)/((column!)*(row-columns)!)

trong đó row là số hàng và col là số cột

Lưu ý rằng cả hàng và cột đều bắt đầu từ 0

Các. đại diện cho giai thừa. Để hiểu cách tìm giai thừa của một số, tham khảo tìm giai thừa trong C

Ví dụ: giá trị trong cột thứ 2 của hàng thứ 4 sẽ là

value = (row!)/((column!)*(row-columns)!)
      = (4!)/((2!)*(4-2)!)
      = (24)/(2*(2!))
      = 24/(2*2)
      = 24/4
      = 6

Vậy 6 là số ở hàng thứ tư và cột thứ hai;

In Tam giác Pascal đến n hàng

Chương trình này yêu cầu người dùng xác định kích thước của tam giác Pascal, tức là người đó muốn in bao nhiêu hàng

#include
#include
long int fact(int);
int main()
{
    int i, c, rowLimit;
    printf("Enter the Number of Rows: ");
    scanf("%d", &rowLimit);
    for(i=0; ii; c--)
            printf(" ");
        for(c=0; c<=i; c++)
            printf("%ld ", fact(i)/(fact(c)*fact(i-c)));
        printf("\n");
    }
    getch();
    return 0;
}
long int fact(int n)
{
    int i, res=1;
    for(i=1; i<=n; i++)
        res = res*i;
    return res;
}

Đây là mẫu chạy của nó

print pascal triangle upto n rows c

Bây giờ hãy cung cấp số hàng, nghĩa là có bao nhiêu hàng trong tam giác Pascal để mở rộng. Giả sử người dùng đã nhập 8 làm số hàng và nhấn phím ENTER. Sau đó, đây là đầu ra được sản xuất bởi chương trình trên

Làm thế nào để code tam giác Pascal trong C?

Lập trình .
#bao gồm < stdio. giờ >
giai thừa dài(int);
int chính ()
int i, n, c;
printf("Nhập số hàng bạn muốn xem trong tam giác pascal\n");
scanf("%d", &n);
for (i = 0; i < n; i++) {

Tam giác Pascals trong mã đệ quy là gì?

Tam giác Pascal là một định nghĩa đệ quy hữu ích cho chúng ta biết các hệ số trong khai triển đa thức (x + a)n . Mỗi phần tử trong tam giác có một tọa độ, được xác định bởi hàng mà nó nằm trên và vị trí của nó trong hàng (mà bạn có thể gọi là cột).

Có một công thức cho tam giác của Pascal?

Công thức tam giác Pascal. Công thức tam giác Pascal là (n+1r)=(nr−1)+(nr) ( n + 1 r ) = ( n r − 1 ) + .

Làm cách nào để in tam giác Floyd trong C?

Chương trình in tam giác Floyd trong bảng chữ cái C bằng vòng lặp for .
#include .
#include .
khoảng trống chính ()
int num, i, j, k = 'A';
printf(" Nhập một số để xác định các hàng trong tam giác Floyd. \N");
scanf("%d", &num);
// sử dụng vòng lặp for lồng nhau