티스토리 뷰
Programming Language/C basic
[C언어] CHAPTER 07 반복문 / 직각 삼각형 찾기, 피타고라스 수 찾기(중복 고려)
또야 2021. 3. 27. 20:25반응형
직각 삼각형은 밑변 a와 높이 b, 빗변 c로 이루어져 있다.
a^2 + b^2 = c^2라는 식이 성립한다.
각 변이 100 이하인 직각삼각형의 경우를 구해보자.
예를 들어
a = 3, b = 4, c = 5 ( 9 + 16 = 25 )
a = 6, b = 8, c = 10 ( 36 + 64 = 100 )
가 있다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
#include <stdio.h>
int main(void)
{
for (int a = 1; a <= 100; a++)
{
for (int b = 1; b <= 100; b++)
{
for (int c = 1; c <= 100; c++)
{
if ((a * a + b * b) == c * c)
printf("%d %d %d\n", a, b, c);
}
}
}
return 0;
}
|
cs |
- 결과
.. 등등 ..
- 설명
중첩 반복문을 활용한 직각 삼각형 찾기이다.
처음에는 a = 1, b = 1, c = 1
그 다음에는 a = 1, b = 1, c = 2
....
a = 1, b = 1, c = 100
a = 1, b = 2, c = 1
와 같은 방식으로
c - b - a 순으로 100까지 쭉 반복한다.
하지만 {3, 4, 5}, {4, 3, 5} 나{6, 8, 10}, {8, 6, 10} 과 같은
동일한 삼각형이 출력되는 문제가 있다.
어떻게 하는 것이 좋을까?
(a*a + b*b) == c*c 식이 있는
if 문에 a < b 조건을 하나 추가해주면 된다.
11
|
if ((a < b) && (a * a + b * b) == c * c)
|
cs |
이렇게 해주면 원래
a, b, c가 100 이하인 조건에서
피타고라스의 수(직각 삼각형의 수)가
104개로 나왔으나,
현재는 52개가 되어,
중복된 수가 제외됨을 확인할 수 있다.
- 한마디
중복을 제거하는 식이 생각보다 간단하였으나
파이썬을 활용하면 한 줄로 활용이 가능하다..
고 생각하니 아쉬웠다.
반응형
'Programming Language > C basic' 카테고리의 다른 글
[C언어] CHAPTER 07 반복문 / Programming 07 / 2와 100 사이에 있는 모든 소수를 찾는 프로그램 (0) | 2021.03.27 |
---|---|
[C언어] CHAPTER 07 반복문 / goto문을 활용하여 중첩 반복문에서 외부로 빠지기 (0) | 2021.03.27 |
[C언어] CHAPTER 06 조건문 / Programming 04 / 가위바위보 게임 (0) | 2021.03.26 |
[C언어] CHAPTER 05 수식과 연산자 / Programming 03 / 3개의 정수 최대값 찾기 (0) | 2021.03.24 |
[C언어] CHAPTER 04 변수와 자료형 / Programming 04 / 상자의 부피 구하기 (0) | 2021.03.24 |
댓글
반응형
Recent Post.
Recent Reply.
- Thanks for comming.
- 오늘은
- 명이 방문했어요
- 어제는
- 명이 방문했어요