如何在不知道数字位数的情况下确定数字的第一个数字?c ++

时间:2016-05-28 12:25:24

标签: c++ algorithm numbers codeblocks digits

例如,42556。如果我不知道号码中的位数,如何确定第一个数字?我找不到适合我的算法! (我的意思是确定42556中的4)

5 个答案:

答案 0 :(得分:1)

迭代除以10直到结果小于10.

public function render($request, Exception $e)
{
    return parent::render($request, $e);
}

答案 1 :(得分:1)

你可以继续将它除以10,直到你到达最后一位数字:

int lastDigit(int n) {
    n = abs(n); // Handle negative numbers
    int ret = n;
    while (n > 0) {
        ret = n % 10;
        n /= 10;
    }
    return ret;
}

答案 2 :(得分:1)

假设a是输入数字。

#include <iostream>
#include <cmath>
using namespace std;

int main() {
    long a = 42556;
    long num;
    num=floor(log10(a))+1; 
    //cout<<num<<" "<<"\n";  //prints the number of digits in the number

    cout<<a/(int)pow(10,num-1)<<"\n"; //prints the first digit
    cout<<a%10<<"\n";                 //prints the last digit

    return 0;
}

现场演示 here

答案 3 :(得分:1)

所有答案都假设您有一个整数。但通常,您可以先使用floor中的<cmath>函数获取整数形式,即

#include <cmath>
int getlastdigit(double number)
{
    long long n = (long long)floor(number);
    while(n > 9)
        n /= 10;
    return n;
}

答案 4 :(得分:0)

试试这个:

MESSAGENOTDEFINED