How to work with BIG numbers? [duplicate]

2019-01-28 09:10发布

问题:

Possible Duplicates:
“BigInt” in C?
How to implement big int in C++

How do we work with big numbers without making use of external libraries and functions?

Some problems are as follows:

What is the sum of the digits of the number 21000?

Work out the first ten digits of the sum of the following one-hundred 50-digit numbers.

37107287533902102798797998220837590246510135740250
46376937677490009712648124896970078050417018260538
74324986199524741059474233309513058123726617309629
91942213363574161572522430563301811072406154908250
23067588207539346171171980310421047513778063246676
8926........................................771585
42502016545090413245809786882778948721859655517457
72107838435069186155435662884062257473692284509516
20849603980134001723930671666823555245252804609722
53503534226472524250874054075591789781264330331690

(this list goes on...)

How would you go on to solve such problems? What approach can I use?

Thanks in advance.

*by the way, these problems are taken from Project Euler but many other instances exist not only there. I found these just to provide an example.

回答1:

You need GMP, the GNU multi-precision library. Seriously, don't re-invent the wheel.



回答2:

Build your bigint implementation, or download one.