플로이드의 삼각형(Floyd's Triangle)은 왼쪽 상단 모서리에서 1부터 시작하여 연속된 자연수를 직각삼각형 형태로 배열한 것입니다.
예를 들어 다음과 같은 형태입니다.
1 2 3 4 5 6 7 8 9 10
예제 1: 기본 플로이드의 삼각형 출력
아래 C 프로그램은 사용자로부터 행(row)의 개수를 입력받아, 이중 for문을 활용해 각 행마다 숫자가 하나씩 늘어나는 형태로 연속된 정수를 출력합니다.
#include <stdio.h>
int main(){
int rows, i,j, start = 1;
printf("Enter no of rows of Floyd's triangle :");
scanf("%d", &rows);
for (i = 1; i <= rows; i++){
for (j = 1; j <= i; j++){
printf("%d ", start);
start++;
}
printf("\n");
}
return 0;
}실행 결과
Enter no of rows of Floyd's triangle :6 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
예제 2: 역방향 플로이드의 삼각형 출력
다음 프로그램은 숫자를 큰 값부터 작은 값 순서로 배치하여 뒤집힌(역방향) 플로이드의 삼각형을 출력합니다. 총 숫자 개수는 n×(n+1)/2 공식으로 계산하며, 마지막 숫자부터 차례대로 감소시키면서 출력합니다.
#include<stdio.h>
int main() {
int num, i, j;
printf("Enter number of rows: ");
scanf("%d",&num);
int k = num*(num+1)/2;
for(i=num; i>=0; i--) {
for(j=1; j<=i; j++)
printf("%4d",k--);
printf("\n");
}
return 0;
}실행 결과
Enter number of rows: 7 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1
핵심 포인트 정리
- 기본형: 바깥 반복문은 행을 제어하고, 안쪽 반복문은 해당 행에 출력할 숫자의 개수를 결정합니다.
- 역방향: n×(n+1)/2로 마지막 숫자를 구한 뒤, 행을 거꾸로 순회하며 값을 감소시키며 출력합니다.
- %4d 서식 지정자: 숫자를 네 자리 폭으로 정렬해 삼각형 모양이 깔끔하게 유지됩니다.