2020-10-09

标题##求出一个多位数的位数并依次顺序输出和倒序输出##
1.求位数
主要思想是:依次丢掉个位,然后计数器加一。
丢掉个位的办法就是用它被10整除,因为定义的数字类型是int类型,而int 类型整除会不计小数部分,从而丢掉各位数;
丢掉一个个位数,原数字的位数依次向右移;而在丢掉个位数的同时计数器加一;直到最后一个数被10整除结果为零为止; (如果原数字等于0,则直接输出1)
函数体源代码:
int GetWei(int n)
{
if(n0)
return 1;
int count=0;
while(n!=0)
{
n/=10; //丢弃个位
count++
} return count;
}
例如 : 12345
整除第一次丢掉5,count加一;得到整数=1234;
整除丢掉4,得到整数=13;count加一;
整数丢掉3,得到整数=12;count加一;
整数丢掉2,得到整数=1;count加一;
整数丢掉1,结果为0;count加一;
跳出循环,返回count=5.
2.顺序输出
主要思想是:依次得到最高位然后丢掉最高位。
先调用GetWei函数得到输入整数的位数,然后用做高位的单位值整除该整数,然后再丢掉最高位(最高位的丢弃和最低位不同,最高位是用%求余);最后依次输出得到的最高位。 (如果原数字等于0,则直接输出0)
函数体源代码:
void Order(int n)
{
if(n
0)
printf(“0”);
int leg = GetWei(n) //得到n的位数 int N = pow(10.0,leg-1) //通过位数得到最高位的单位值
while(n!=0)
{
printf("%d “,n/N); //得到最高位 n%=N; //得到剩下n的位数 N/=10; //得到剩下n的最高位的值
} return;
}
例如:12345
先调用GetWei函数得到整数的位数leg为5; 然后计算得N等于10000;
进入循环体:
先输出最高位1,然后丢掉1,剩下2345; 然后输出最高位2,然后丢掉2,剩下345; 依次输出输出 1 2 3 4 5.
3.逆序输出
主要思想是:依次得到最低位然后丢掉最低位。(和顺序输出原理基本相同,不同点是丢带最低位用到的数值是已知的) (如果原数字等于0,则直接输出0)
函数体源代码:
void Reverse(int n)
{
if(n==0)
printf(“0”);
while(n!=0)
{
printf(”%d ",n%10); //得到最低位 n/=10; //丢掉最低位
}
}
例如:12345
先用10整除得到最低位5输出,然后丢掉5,原数字剩 1234;
再用10整除得到最低位4输出,然后丢掉4,原数字剩 123;
直到n=0,跳出循环; 依次输出 5 4 3 2 1

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值