这里我们拿十进制举例,比如一个数x,如果要得到个位则x要对10取余,如果要丢弃个位数则x要对10整除,这里我们定义一个变量tmp来获取这个数的个位
void Digit(int x)
{
int tmp;
while(x!=0)
{
tmp=x%10;
x /=10;
}
}
由此我们可以运用这个方法解决大多数类似的问题
- 计算x的位数
void Digit(int x)
{
int count=0;
while(x!=0)
{
x /=10;
count++;
}
printf("%d\n",count);
}
- 逆序输出各位数字
void Digit(int n)
{
int tmp;
while(n!=0)
{
tmp=n%10;
n /=10;
printf("%d ",tmp);
}
printf("\n");
}
- 顺序输出各位数字
这里我们就要用到上面说到的得到位数的这个函数了
void Seek(int x)
{
int tmp;
int count=Digit(x)-1;
while(x!=0)
{
tmp = x/(int )(pow(10.0,count*1.0));
printf("%d ",tmp);
x=x%(int )(pow(10.0,count*1.0));
count-=1;
}
printf("\n");
}
对于十进制来说,要对10进行整除取余,对于其他进制来说则要对对应的进制数来进行整除和取余,比如二进制则要对2进行取余和整除。