现在的位置: 首页 > 综合 > 正文

Tyvj 水题begin 求一个正整数位数的常用方法

2018年04月29日 ⁄ 综合 ⁄ 共 748字 ⁄ 字号 评论关闭

正整数位数的判断方法~~~

  我总结了三种判断正整数位数的方法,相信大家一定会发现比我
多的,比我更叫巧妙的算法。。。

    第一种:使用数学函数log。。。

    第二种:使用printf函数的特殊性质

    第三种:利用模拟的思想,一步一步的求解~

/*
        求一个正整数的位数的常用方法:
        1.使用数学函数 log
        2.利用printf函数的特殊性质
        3.利用模拟的思想
*/

# include<cstdio>
# include<iostream>
# include<cmath>

using namespace std;


int main(void)
{
    int i;
    scanf("%d",&i);
    printf("的位数%d",printf("%d",i));
    return 0;
}

int main(void)
{
    int m;
    int i = 1;
    cin>>m;
    while( (m = m / 10) >= 1 )
    {
        i++;
    }
    cout<<i;
    return 0;
}
/*
		这个不用特殊的解释吧,,相信大家一定能看懂,每一步让这个数字减少一位,直到这个数字为0,结束。。
	但一定要记住,要让i初始化为1,我一开始初始化为0,怎么做都是少一位。。
*/

int main(void)
{
    long int a, b;
    cin>>a>>b;
    //int j = log10(m)+1;
    long int j = log(a*b)/log(10) + 1;
    cout<<j;

  /*  对数运算是幂运算的逆运算。

    z=x^y (z=x的y次方)那么就定义 y=logx(z),叫做以x为低z对数
    所以你的求位数的运算就可以用10的对数来计算。

    计算机的函数库一般都是提供了一e为低的对数,
    而另一个公式就是
    logx(y) = logm(y) / logm(x)这个转化底数的常用公式,再已知某一个底数对数的情况下,可以计算任意的底数对数。
*/

    return 0;
}

抱歉!评论已关闭.