문제

C ++에서 파스칼 삼각형에서 총 1500 번째 행을 계산하려고했습니다.

웹 전체에서 6 개의 다른 코드 스 니펫을 시도했습니다.

일부 행이 10 일 이전에 추락했는데, 일부는 미친 etc.

Pascal Triangle에서 1500 번째 행에서 숫자의 합계를 어떻게 계산할 수 있는가?

RATERATIONS가 프로그램을 유발하는 반복을 유발하기 때문에 각 행을 반복하지 않고 행을 찾는 수식이 있어야합니다.

도움이 되었습니까?

해결책

모든 행의 숫자의 합은 2 ^ n가 행 (0에서 시작) 인 n와 같습니다.따라서 귀하의 경우에, 그것은 단지 1 << 1499 일 것입니다.

여기에 이미지 설명을 입력하십시오

답변은 다음과 같습니다.

17537331055217019373813793980140428996762007940165414412037899012395481925281661101828540443292484630826575203397718758699647274470734979877085519459002350423944978242664548632243401355791731473268341092170069314725677729132473171262691809694657480322332526275875721167754624586680565177898054854942790337156977105108828923716313380366502376637658596066837351781686391648520996613526331666834254976000087526677764529440217091269193357761841856604274688

다른 팁

Google 검색은 위키에서 공개합니다 :

파스칼의 삼각형의 n 번째 행의 항목의 합계는 n 번째입니다. 2의 힘 2.

모든 행을 반복하려고하는 대신 2 ^ 1500을 계산해야합니다.

파스칼 삼각형의 행 합계는 n 개의 행 번호 (0 기반)가있는 1<<n입니다.최종 값은 1<<1499입니다.

프로그램은 Neads가 1500 비트 정수를 표시하는 데있어 주요 문제 여야합니다.바이너리 출력을 생성하려면 를 사용하십시오.

printf("1"); 
for (int i=1;i<1500;i++) printf("0");
printf("\n");
.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top