关于问题编程求一个正整数有几位,最快的方法是什么?一共有 5 位热心网友为你解答:
【1】、来自网友【冰日暖阳】的最佳回答:
1、用 10 的次方比较
2、转换成科学计数法,直接取
【2】、来自网友【闲着聊聊天呀】的最佳回答:
很简单,一个语句搞定。先将正整数转换为字符串,再求字符串长度即可。如下所示:
len(str(m))
【3】、来自网友【散居猎人】的最佳回答:
function fnum(x:integer): integer
fnum:=integer(log(x))+1;
逐次比较方法可以优化。
1.把 1..10 的 15 次方存入数组,数组下标就是 10 的幂次,num[0]=1,num[1]=10…
2.在 1..15 之间用二分法搜索
递归函数或递推实现
如果大于 1,小于 15
判断 8,如果合适,返回。
如果小于 8,在 1..8 之间搜索
如果大于 8,在 8..15 之间搜索
【4】、来自网友【帖木兒】的最佳回答:
int Digits(int n) {
static const int M[]={
10,100,1000,10000,
100000,1000000,10000000,100000000,
1000000000};
int i;
if(n<M[1]) i=0;
else {
i=(n<M[5]) ? 3 : 7;
if(n<M[i]) i–; else i ++;
}
return (n<M[i]) ? i+1 : i+2;
}
【5】、来自网友【大自然的小学生】的最佳回答:
求 10 为底的对数
以上就是关于问题【编程求一个正整数有几位,最快的方法是什么?】的全部回答,希望能对大家有所帮助,内容收集于网络仅供参考,如要实行请慎重,任何后果与本站无关!