คำอธิบายโปรแกรม
สามเหลี่ยมฟลอยด์ (Floyd's Triangle) เป็นอาร์เรย์สามเหลี่ยมมุมฉากของจำนวนธรรมชาติ ใช้ในการศึกษาวิทยาการคอมพิวเตอร์ ชื่อมาจากโรเบิร์ต ฟลอยด์ นิยามโดยการเติมแถวด้วยตัวเลขติดต่อกัน เริ่มจาก 1 ที่มุมซ้ายบน
Floyd's Triangle: Reverse Floyd's Triangle: 1 15 14 13 12 11 2 3 10 9 8 7 4 5 6 6 5 4 7 8 9 10 3 2 1 11 12 13 14 15 1
อัลกอริทึม
การพิมพ์สามเหลี่ยมฟลอยด์ -
รับจำนวนแถว พิมพ์ค่า 1 สำหรับแถวที่ 1 พิมพ์ค่า 2, 3 สำหรับแถวที่ 2 พิมพ์ค่า 4, 5, 6 สำหรับแถวที่ 3 ทำซ้ำจนครบจำนวนแถว
การพิมพ์สามเหลี่ยมฟลอยด์ย้อนกลับ -
รับจำนวนแถว พิมพ์ค่าตามลำดับย้อนกลับตามรูปแบบสามเหลี่ยมฟลอยด์ย้อนกลับ
ตัวอย่างโค้ด
/* Program to print the Reverse of Floyd's Triangle */
#include <stdio.h>
int main() {
int r, c = 1;
int rows, revrows, r1, c1, d;
// clrscr();
printf("Enter number of rows to print the Floyd's Triangle: ");
scanf("%d", &rows);
printf("\n");
for (r = 1; r <= (rows * (rows + 1)) / 2; r++) {
printf("%d ", r);
if (r == (c * (c + 1)) / 2) {
printf("\n");
c++;
}
}
printf("\n\n");
/* Printing the Reverse of Floyd's Triangle */
printf("Enter number of rows to print the reverse of Floyd's Triangle: ");
scanf("%d", &revrows);
printf("\n\n");
printf("Reverse of Floyd's Triangle\n\n");
d = (revrows * (revrows + 1)) / 2;
for (r1 = revrows; r1 >= 1; r1--) {
for (c1 = r1; c1 >= 1; c1--, d--) {
printf("%4d", d);
}
printf("\n");
}
// getch();
return 0;
}
เอาต์พุต
แสดงสามเหลี่ยมฟลอยด์และสามเหลี่ยมฟลอยด์ย้อนกลับ ตามจำนวนแถวที่ป้อน