[2025.02.28] 순서도 그리기_3_반복문

2025. 3. 1. 12:08·Python
목차
  1. [순서도 그리기 예제 20]
  2. [순서도 그리기 예제 21]
  3. [순서도 그리기 예제 22]
  4. [순서도 그리기 예제 23]
  5. [순서도 그리기 예제 24]
  6. [순서도 그리기 예제 25]
  7. [순서도 그리기 예제 26]
  8. [순서도 그리기 예제 27]
  9. [순서도 그리기 예제 28]
  10. [순서도 그리기 예제 29]
  11. [순서도 그리기 예제 30]
  12. [순서도 그리기 예제 31]
  13. [순서도 그리기 예제 32]
  14. [순서도 그리기 예제 33]
  15. [순서도 그리기 예제 34]
  16. [순서도 그리기 예제 35]
  17. [순서도 그리기 예제 36]

20번대 문제까지는 순서도 먼저 그리고 코딩해서 결과 확인했는데,, 30번대로 넘어가니까 순서도 먼저 그리기가 힘들어짐 ㅎ

그래서 그냥 막히면 일단 코딩해보고 순서도의 어느 부분이 잘못된건지 확인하고,,, 이렇게 해버렸다리,, 

나의 뇌를 컴퓨터화 시키자..!

 

 

[순서도 그리기 예제 20]

  • 반복문을 사용해 숫자 10부터 1까지 출력하세요.
  • i가 10부터 1씩 감소하며 1이 될 때까지 반복하며 i 값을 출력한다.

i = 10
while i >= 1:
    print(i)
    i -= 1

 

 

 

 

[순서도 그리기 예제 21]

  • 숫자 1부터 100까지의 합 구하세요.
  • 0으로 초기화되어 있는 변수 sum에 숫자 1부터 100까지 1씩 증가하는 i 값을 계속 더해 1부터 100까 지의 합을 구합니다.

sum = 0
for i in range(1, 101):
    sum += i

print(sum)

 

 

 

 

[순서도 그리기 예제 22]

  • 1부터 100까지의 수 중 짝수의 합 구하기(1)
  • i가 2부터 2씩 증가하며 100이 될 때까지 반복하며 sum에 i 값을 누적합니다.

sum = 0
i = 2
while i <= 100:
    sum += i
    i += 2

print(sum)

 

 

 

 

[순서도 그리기 예제 23]

  • 1부터 100까지의 수 중 짝수의 합 구하기(2)
  • i가 1부터 1씩 증가하며 100이 될 때까지 반복하며 i가 짝수인 경우 sum에 i 값을 누적한다.
  • i를 2로 나눈 나머지가 0이면 i는 짝수이다.

sum = 0
i = 1
while i <= 100:
    if i % 2 == 0:
        sum += i
        i += 1
    else:
        i += 1

print(sum)

 

 

 

 

[순서도 그리기 예제 24]

  • 1, -2, 3, -4, ..., 99, -100의 합 구하기
  • i가 1부터 1씩 증가하며 100이 될 때까지 반복하며 i가 홀수면 sum에 i 값을 더하고, i가 짝 수면 sum에서 i 값을 뺀다.

sum = 0
i = 1
while i <= 100:
    if i % 2 == 1:
        sum += i
        i += 1
    else:
        sum -= i
        i +=1

print(sum)

 

 

 

[순서도 그리기 예제 25]

  • 계승 구하기
  • 계승이란 1부터 임의의 양의 정수 n까지의 수를 모두 곱한 것을 말하며 n!로 나타낸다.
  • 예를 들어 5의 계승은 5!로 표시하며 1*2*3*4*5 이다. 그런데, 여기서 0!은 1로 정의한다.
    5!은 1로 초기화되어 있는 변수 fact에 5부터 1까지 1씩 감소하는 i 값을 곱해 구한다.

n = input("양의 정수를 입력해주세요: ")
n = int(n)
factorial = 1

for i in range(n):
    factorial *= (n-i)
    
print(factorial)

 

 

 

 

[순서도 그리기 예제 26]

  • 약수 구하기
  • 임의의 수를 나누었을 때 나누어떨어지게 하는 수를 약수라 한다.
  • 즉, n의 약수는 1부터 n까지의 수로 n을 나누어떨어지게 하는 수가 된다.
  • 예를 들면, 10의 약수는 1부터 10까지 수들로 나누었을 때 나머지가 0이 되게 하는 수, 즉 1, 2, 5, 10이 된다.

n = input("양의 정수를 입력하세요: ")
n = int(n)
list_ = []

for i in range(1, n+1):
    if n % i == 0:
        list_.append(i)

print(list_)

 

 

 

 

[순서도 그리기 예제 27]

  • 공약수 구하기
  • 공약수란 0이 아닌 두 정수의 공통되는 약수를 말한다. 즉, 두 정수를 나누어떨어지게 하는 공통의 수를 의미한다.
    n1과 n2의 공약수는 1부터 n1까지 1씩 증가하는 i로 n1과 n2 모두를 나누어떨어지게 하는수가 된다. 
  • 단, n1이 n2보다 작다고 가정한다.

n1 = input("n1 (n1<n2) :")
n2 = input("n2 (n1<n2) :")
n1 = int(n1)
n2 = int(n2)
list_ = []

for i in range(1, n2+1):
    if n1 % i == 0 and n2 %i == 0:
        list_.append(i)

print(list_)

 

 

 

[순서도 그리기 예제 28]

  • 최대공약수 구하기
  • 두 정수의 공약수 중 가장 큰 것을 최대공약수라 한다.
  • 그러므로 n1과 n2의 최대공약수는 n1부터 1까지 1씩 감소하는 i로 n1과 n2 모두를 나누어떨어지게 하는 첫 번째 수가 된다. 단, n1이 n2보다 작다고 가정한다.

n1 = input("n1 (n1<n2) :")
n2 = input("n2 (n1<n2) :")
n1 = int(n1)
n2 = int(n2)

for i in range(n1, 0, -1):
    if n1 % i == 0 and n2 % i == 0:
        print(i)
        break

 

 

 

 

[순서도 그리기 예제 29]

  • 소수 판별하기
  • 소수란 2, 3, 5, 7, …과 같이 1과 자기 자신 이외의 양의 약수를 가지지 않는 1보다 큰 자연수를 말한다.

n = input("1보다 큰 자연수를 입력해주세요: ")
n = int(n)
list_ = []

for i in range(1, n+1):
    if n % i == 0:
        list_.append(i)
if len(list_) == 2:
    print("소수 입니다.")
else:
    print("소수가 아닙니다.")

 

 

 

 

[순서도 그리기 예제 30]

  • 피보나치수열 구하기 
  • 다음과 같은 수열이 있다.
  • 1  1  2  3  5  8  13  21  34  55  …
  • 이 수열의 "두 번째 항" 이후의 항들은 "이전의 두 항"을 더해 구해진다.
  • 즉, 첫 번째 항과 두번째 항을 더한 값이 세 번째 항이 되고, 두 번째 항과 세 번째 항을 더한 값이 네 번째 항
    이 된다. 이와 같은 수열을 피보나치수열이라 한다.

a = 1
b = 1
list_ = [a, b]

for i in range(2, 21):
    c = a + b
    list_.append(c)
    a = list_[i-1]
    b = list_[i]

print(list_)

 

 

 

 

[순서도 그리기 예제 31]

  • 최댓값 구하기
  • max 값과 새롭게 입력받은 a 값을 비교하여 큰 값을 max에 저장하는 동작을 반복하며 최댓값을 구한다.

max_ = 1

for i in range(7):
    a = input("정수 a를 입력하세요: ")
    a = int(a)
    if max_ > a:
        continue
    else:
        max_ = a

print(max_)

 

 

 

 

[순서도 그리기 예제 32]

  • 직각 삼각형 모양으로 수 출력하기
  • 바깥쪽 반복문은 i 값을 1부터 5까지 반복하고, 안쪽 반복문은 j 값을 1부터 i까지 반복하며 j 값을 출력하면 다음과 같이 된다. 단, 안쪽 반복문을 마치면 “ \n”을 이용해서 다음 줄로 넘긴다.

num = 5

for i in range(1, num+1):
    for j in range(1, i+1):
        print(f"{j}", end="")
    print()

 

 

 

 

[순서도 그리기 예제 33]

  • 1부터 10까지의 정수에 대한 약수 구하기
  • 중첩 반복 구조를 이용해서 1부터 10까지의 정수에 대한 약수를 구한다.
  • 약수를 구하는 방법은 예제 26에서 살펴보았다.

for i in range(1, 11):
    list_ = []
    for j in range(1, i+1):
        if i % j == 0:
            list_.append(j)
    print(f"{i}의 약수: {list_}")

 

 

 

 

[순서도 그리기 예제 34]

  • 2부터 100까지의 소수 구하기
  • i가 2부터 1씩 증가하며 100이 될 때까지 반복하며 각 i 값이 소수인지 판별합니다.
  • 소수를 판별하는 방법은 예제 29에서 살펴보았습니다.
  • 아래 실행 결과와 같은 값을 출력하세요.

i = 2
output = []
while i <= 100:
    list_ = []

    for j in range(1, i+1):
        if i % j == 0:
            list_.append(j)
    # print(list_)
    if len(list_) == 2:
        output.append(i)
    i += 1

print(output)

 

 

 

 

[순서도 그리기 예제 35]

  • 1, (1+2), (1+2+3), …, (1+2+ … +10)의 합 구하기
  • i가 1부터 1씩 증가하며 10이 될 때까지 반복하며 n은 i 값을 누적하고, sum은 n 값을 누적하여 원하는 값을 구한다.

n = 0
sum_ = 0
for i in range(1, 11):
    n += i
    sum_ += n

print(sum_)

 

 

 

 

[순서도 그리기 예제 36]

  • 다음과 같은 형식으로 출력되는 구구단 순서도와 프로그램을 작성한다.
  • 각 단에 해당하는 2부터 9까지의 수는 변수 i로, 곱하여지는 수 1부터 9까지는 변수 j로, 곱한결과는 j*j로 나타낸다.

for i in range(2, 10):
    for j in range(1, 10):
        print(f"{i} * {j} = {i*j}\t", end="")
    print()

'Python' 카테고리의 다른 글

[2025.03.04] 물고기 키워 팔기 게임  (0) 2025.03.04
[2025.03.01] 숫자야구 게임 만들기  (0) 2025.03.04
[2025.02.28] 순서도 그리기_2  (0) 2025.02.28
[2025.02.27] 순서도 그리기_1  (0) 2025.02.27
[2025.02.27] 함수  (0) 2025.02.27
  1. [순서도 그리기 예제 20]
  2. [순서도 그리기 예제 21]
  3. [순서도 그리기 예제 22]
  4. [순서도 그리기 예제 23]
  5. [순서도 그리기 예제 24]
  6. [순서도 그리기 예제 25]
  7. [순서도 그리기 예제 26]
  8. [순서도 그리기 예제 27]
  9. [순서도 그리기 예제 28]
  10. [순서도 그리기 예제 29]
  11. [순서도 그리기 예제 30]
  12. [순서도 그리기 예제 31]
  13. [순서도 그리기 예제 32]
  14. [순서도 그리기 예제 33]
  15. [순서도 그리기 예제 34]
  16. [순서도 그리기 예제 35]
  17. [순서도 그리기 예제 36]
'Python' 카테고리의 다른 글
  • [2025.03.04] 물고기 키워 팔기 게임
  • [2025.03.01] 숫자야구 게임 만들기
  • [2025.02.28] 순서도 그리기_2
  • [2025.02.27] 순서도 그리기_1
polibo
polibo
Polibo의 개발 성장기 지켜봐주십슈 (콩 싫어해요.)
  • polibo
    Polibo와 개발 콩나무 키우기
    polibo
  • 전체
    오늘
    어제
    • 분류 전체보기 (64) N
      • Python (23)
      • C (32)
        • 본수업 (19)
        • 예습 (7)
        • 개인프로젝트01 - 로또 (3)
        • 개인프로젝트02 - 복켓몬 키우기 (2)
        • 개인프로젝트03 - 김복천국 POS기 (1)
        • 팀프로젝트01 - 용사 복이의 대모험 RPG (0)
        • 팀프로젝트02 - 메일 프로그램 (0)
      • TCP_IP (0)
      • DB (1)
      • C++ (7) N
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    c우선순위
    파이썬게임
    파이썬
    C
    파이썬 숫자야구
    else if
    문자열
    코딩
    Python
    파이썬예제
    c언어 scanf
    순서도
    if문
    반복문
    파이썬조건문
    파이썬반복문
    조건문
    c언어
    for문
    while문
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
polibo
[2025.02.28] 순서도 그리기_3_반복문

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.