巨无霸数如何计算
一个很大的数如何计算,比如:12345678910111213141516171819......100除以4,这个巨无霸数已经超过了常规条件下的所有数据类型。
Python大数计算时非常快,听说底层是用c/c++来写的(不知道是不是真的),
大数计算时算法优化了,具体怎么实现的,我也很想知道,不过看不懂Python代码。
程序代码:#include <stdio.h>
#include <stdbool.h>
// 这只是一个示例,代码非常简单便于理解,当然运行效率也最差
void foo( const char* a, unsigned b )
{
bool f = false;
unsigned carray = 0;
for( ; *a; ++a )
{
carray = carray*10 + (*a-'0');
if( carray/b!=0 || f )
{
putchar( carray/b + '0' );
f = true;
}
carray %= b;
}
if( !f )
putchar( '0' );
if( carray != 0 )
printf( " ...... %u", carray );
putchar( '\n' );
}
int main( void )
{
foo( "12345678910111213141516171819100", 4u ); // 输出 3086419727527803285379042954775
foo( "123", 4u ); // 输出 30 ...... 3
foo( "0", 4u ); // 输出 0
}

