2016-12-08 8 views
1

나는 높은 전력으로 올리는 데 필요한 ulong 값을 가지고 있지만, Math.Pow은 올바른 출력을 성공적으로 생성하지 못합니다. 정말 큰 숫자를 어떻게 큰 힘으로 키울 수 있습니까?

내 C# 코드 :

ulong a = 9123456789; 
ulong b = (ulong)Math.Pow(a, 9999); 
Console.WriteLine(b); 

내가이 계산을 수행하고 올바른 결과를 얻을 수있는 방법 화면 출력은 0입니다

+3

9123456789^9999가 ulong에 적합 할 것이라고 심각하게 생각합니까? – Blorgbeard

+0

'Math.Pow'는 double에서만 작동합니다. –

+0

어쨌든 큰 번호로 무엇을 할 수 있습니까? – Servy

답변

7

예, 특수 번호 BigInteger 클래스를 사용하여 해당 숫자를 계산할 수 있습니다. 길이가 16 비트 인 ushort으로 시도해 볼 수 있습니다. 그런데

using System; 
using System.Collections; 
using System.Numerics; 

public class Test 
{ 
    public static void Main(string[] args) 
    { 
     BigInteger a = 9123456789; 
     BigInteger b = BigInteger.Pow(a, 9999); 

     //Output this number if you're feeling lucky. 
     Console.WriteLine(b); 
    } 
} 

출력

43056151396124937171542222696555900626431494491043369510338912076154406943108 
.. 
8614367506747618876018379290109 

, 당신은 결과를 저장하기 위해 330,837 비트를 필요 했어.

+0

System.Numerics 오류를 사용하는 이유는 무엇입니까? –

+0

명시 적으로 프로젝트에'System.Numerics.dll'을 포함시켜야합니다. Visual Studio에서 프로젝트 "References"를 마우스 오른쪽 버튼으로 클릭하고 "Assemblies"로 이동 한 다음 System.Numerics를 검색하고 이름 옆에 눈금을 추가하십시오. 그 dll을 포함해야하며 코드를 컴파일해야합니다. –

+0

예 근무했습니다. 저를 도와 주셔서 감사합니다 :) –

0

매우 큰 숫자로 작업하려면 BigInteger을 찾으십시오.

+0

@ Great.And.Powerful.Oz 하하. 죄송합니다, 지금 고쳐 주셨습니다. 감사! – user6516640