1.统计十进制n的位数
int GetFigures(int n)
{
int count = 0;
do
{
count++;
n /= 10;//丢弃个位 123/10=12
}while(n != 0);
return count;
}
解法:丢弃个位,如: 123/10=12 12/10=1 1/10=0
2.逆序输出十进制数字n,如123->3 2 1
解法:先得到个位数字,再丢弃 如: 123%10=3 123/10=12
12%10=2 12/10=1
1%10=1 1/10=0
void PrintReverse(int n)
{
if(n < 0)
{
printf("-");
n = -n;
}
do
{
printf("%d ",n%10);//得到个位数字
n /= 10;//丢弃个位数字
}while(n!=0);
printf("\n");
}
3.顺序输出十进制数字n,如123->1 2 3
解法:先得到最高位,再丢弃 如:123/100=1 123%100=23
23/10=2 23%10=3
void PrintOrder1(int n)//1234
{//int GetFigures(int n)
int count;
count = GetFigures(n);
int power = 1;
//pow(10,count-1);
for(int i=0;i<count-1;i++)//4->1000
{
power *= 10;//power = power*10;
}
do
{
printf("%d ",n/power);//得到最高位
n %= power;//丢弃最高位
power /= 10;
}while(n!=0);
printf("\n");
}