巨无霸数如何计算
一个很大的数如何计算,比如:12345678910111213141516171819......100除以4,这个巨无霸数已经超过了常规条件下的所有数据类型。
2019-07-20 16:52

2019-07-20 21:29
程序代码:#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
}
2019-07-22 09:06

2019-07-22 13:55

2019-07-22 16:26