#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
原文:https://www.cnblogs.com/fgxr/p/14843415.html