求开方数,求一个number的个数,和正向反向打印

求开方数,求一个number的个数,和正向反向打印

#include <stdio.h>
#include <math.h>
#include <assert.h>
int mysqrt(unsigned int val) //给一个数开方,结果取整数部分
{
    assert(0 < val && val <= 1000);
    int temp = 1;
    while ((temp * temp) <= val)
    {
        temp++;
    }
    return --temp;
}

int Get_figure(unsigned int val)
{ //求一个数的位数
    int tmp = 0;
    while (val)
    {
        val /= 10;
        tmp++;
    }
    return tmp;
}

void Print_Order(unsigned int val)
{ //正向打印
    int order = (int)pow(10.0, Get_figure(val) - 1);
    while (order)
    {
        int tmp = val / order;
        printf("%d", tmp);
        val = val % order;
        order /= 10;
    }
    printf("\n");
}

void Print_Reverse(unsigned int val)
{ //反向打印
    while (val)
    {
        int tmp = val % 10;
        printf("%d", tmp);
        val /= 10;
    }
    printf("\n");
}
int main()
{
    printf("%d\n", mysqrt(800));
    printf("%d\n", Get_figure(100));
    Print_Order(10045);
    Print_Reverse(10045);
}
//结果
28
3
10045
54001
posted @ 2021-06-02 23:47  Fgxr  阅读(69)  评论(0)    收藏  举报