C语言 A*B Problem
发布网友
发布时间:2022-04-22 21:49
我来回答
共2个回答
热心网友
时间:2022-05-13 00:54
逻辑有错吧?一个乘数为0时不就是1位吗?还要算?好像如下就可以了——
void main(void){
long long A,B;
int C;
scanf("%lld %lld", &A, &B);
if(A==0 || B==0) C=1;
else C=(int)(log10(A)+log10(B))+1;//如果你的平台没有log10就用你原来的算法.
printf ("%d", C);
}追问貌似我没描述清楚? 数据溢出时是为0 但需要的是log(2^64) long long 型 的数据上限为2^64-1
热心网友
时间:2022-05-13 02:12
要用unsigned long long和"%llu"