[Python] 등차 수열 / 등비 수열

이소티·2023년 5월 31일

python

목록 보기
13/33

함수를 이용한 프로그래밍

# 등차 수열의 n번째 값과 합을 출력하는 함수 작성


def sequenceCal(n1,d,n) :

    valueN = 0
    sumN = 0
    i = 1


    while i <= n :
        
        if i == 1 :

            valueN = n1
            sumN += valueN

            print('{}번째 항의 값: {}'.format(i, valueN))
            print('{}번째 항까지의 합: {}'.format(i, sumN))

            i += 1

            continue


        valueN += d
        sumN += valueN
        
        print('{}번째 항의 값: {}'.format(i, valueN))
        print('{}번째 항까지의 합: {}'.format(i, sumN))
        
        i += 1




inputN1 = int(input('a1 입력: '))
inputD = int(input('공차 입력: '))
inputN = int(input('n 입력: '))


sequenceCal(inputN1, inputD, inputN)



# 공식 이용하기


def sequenceCal01(n1, d, n):


    # 등차 수열(일반항) 공식: an = a1 + (n-1) * d
    
    valueN = n1 + (n-1) * d
    print('{}번째 항의 값: {}'.format(n, valueN))


    # 등차 수열(합) 공식: sn = n(a1 + an) / 2
    
    sumN = n * (n1 + valueN) / 2
    print('{}번째 항까지의 합: {}'.format(n, int(sumN)))




inputN1 = int(input('a1 입력: '))
inputD = int(input('공차 입력: '))
inputN = int(input('n 입력: '))


sequenceCal01(inputN1, inputD, inputN)



# 등비 수열의 n번째 값과 합을 출력하는 함수 작성


def sequenceCal(n1, r, n):

    valueN = 0
    sumN = 0
    i = 1


    while i <= inputN:

        if i == 1:
            valueN = n1
            sumN += valueN
            
            print('{}번째 항의 값: {}'.format(i, valueN))
            print('{}번째 항까지의 합: {}'.format(i, sumN))
            
            i += 1



        valueN *= r
        sumN += valueN
        
        print('{}번째 항의 값: {}'.format(i, valueN))
        print('{}번째 항까지의 합: {}'.format(i, sumN))
        
        i += 1




inputN1 = int(input('a1 입력: '))
inputR = int(input('공비 입력: '))
inputN = int(input('n 입력: '))


sequenceCal(inputN1, inputR, inputN)



# 공식 이용하기


def sequenceCal01(n1, r, n):

    # 등비 수열(일반항) 공식: an = a1 * r^(n-1)
    
    valueN = n1 * (r ** (n - 1))
    print('{}번째 항의 값: {}'.format(n, valueN))


    # 등비 수열(합) 공식: sn = a1 * (1 - r^n) / (1-r)
    
    sumN = n1 * (1 - (r ** n)) / (1 - r)
    print('{}번째 항까지의 합: {}'.format(n, int(sumN)))




inputN1 = int(input('a1 입력: '))
inputR = int(input('공비 입력: '))
inputN = int(input('n 입력: '))


sequenceCal01(inputN1, inputR, inputN)
profile
데이터 관련 학습 일지

0개의 댓글