Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

며칠 후 제품 가격을 알아내는 Python 프로그램

<시간/>

어떤 사람이 가격 x의 제품을 구매하려고 한다고 가정합니다. 그러나 하루가 지나면 제품의 가격은 전날 가격의 x배가 됩니다. 그 사람이 제품을 구매하기로 마음먹었기 때문에 y일 후에 제품의 가격을 알아내야 합니다. 제품의 가격이 너무 높으면 답은 가격 모듈로 10^9 + 7로 제공됩니다. 입력은 쌍 목록으로 제공됩니다. 쌍의 첫 번째 값은 초기 가격 x이고 두 번째 값은 y, 경과 날짜 수입니다.

그래서, 입력 nums =같은 경우 [(5, 2), (6, 8), (2, 12), (2,722,764,242,812,953,792,238,894,584, 3,486,705,296,791,319,646,759,756,475) (1505449742164712795427942455727527, 61649494321438487460747056421546274264)], 출력 될 것이다 (25), 1,679,616, 4096, 754504594, 32955023

여기서 출력은 5^2 =25, 6^8 =1679616, 2^12 =4096,2722764242812953792238894584^3486705296791319646759756450입니다.

이 문제를 해결하기 위해 다음 단계를 따릅니다. −

  • 0~숫자 크기 범위의 i에 대해
    • x,y :=숫자[i, 0], 숫자[i, 1]
    • x 값을 y 모듈로 10^9 + 7의 거듭제곱으로 반환

이해를 돕기 위해 다음 구현을 살펴보겠습니다. −

def solve(nums):for i in range(len(nums)) :x,y =nums[i][0], nums[i][1] print(pow(x,y,1000000007)) ([(5, 2), (6, 8), (2, 12), (2,722,764,242,812,953,792,238,894,584, 3,486,705,296,791,319,646,759,756,475) (1505449742164712795427942455727527, 61649494321438487460747056421546274264)])  해결 

입력

<프리> [(5, 2), (6, 8), (2, 12), (2,722,764,242,812,953,792,238,894,584, 3,486,705,296,791,319,646,759,756,475) (1505449742164712795427942455727527, 61649494321438487460747056421546274264)]

출력

251679616409675450459432955023