问题描述:给与一个整数
求这个数是几位数 输出每个位上的数 逆序输出每一位数
1.求这个数是几位数
思路,将这个数除以基数10,得到这个数的个位 将所得的数在除以基数10,得到个位 依次循环得到这个数的个位,并计数
int NumberOfDigits1 ( int num)
{
int len = 0 ;
while ( num != 0 )
{
num / = 10 ;
len++ ;
}
return len;
}
int NumberOfDigits ( int num)
{
if ( num == 0 )
return 0 ;
else
return 1 + NumberOfDigits ( num/ 10 ) ;
}
顺序输出每一位数
顺序输出每一个数,以递归最为方便 思路 将这个数的除以10作为参数, 递归调用函数 直到参数等于0时,到达递归边界 输出上一次调用时的参数%10的结果
void DivideOfNumber ( int num)
{
if ( num == 0 )
return ;
else
DivideOfNumber ( num / 10 ) ;
printf ( "%d " , num% 10 ) ;
}
逆序输出每个位上的数
将这个数对10取余,输出结果 对这个数再除以十,再取余数,输出 依此循环,直到这个数等于0为止。
void ReDivideOfNumber ( int num)
{
while ( num != 0 )
{
printf ( "%d" , num % 10 ) ;
num / = 10 ;
}
}
void ReDivideOfNumber1 ( int num)
{
if ( num == 0 )
return ;
else
{
printf ( "%d" , num % 10 ) ;
ReDivideOfNumber1 ( num / 10 ) ;
}
}