怎么输出多位数的每一位数

1、最简单的

怎么输出最每位数字?把要输出的位数变成最低位,对于十进制数,每个数%10取余后就是 最低位数字

        比如,125的最低位为125%10=5

                 12的最低位为12%10=2

                 1的最低位为1%10=1

那怎么把要输出的位数变成最低位?从低位到高位,/10就前进一位

        比如,125/10=12

                   12/10=1

                   1/10=0

连贯起来就是:
        最低位5        125%10=5 输出

        前进一位,最低位2        125/10=12
                             12%10=2 输出        
        前进一位,最低位1        12/10=1
                              1%10=1 输出
        前进一位,最低位0        1/10=0

                              说明已经前进到最高位之后了,不用再输出。所以终止条件为/10=0

代码如下:

#include<iostream>
using namespace std;
int main()
{
	int n;
    cin>>n;
    while(n!=0) {
        cout<<n%10<<" ";
        n/=10;
    }
    return 0;
}

缺点:输出顺序是从最低位到最高位

2、递归

#include<iostream>
using namespace std;
int fun(int n)
{
	if(n<10)
		cout<<n<<" ";
	else {
		fun(n/10);
		cout<<n%10<<" ";
	}
		
}
int main()
{
	int n;
    cin>>n;
    fun(n);
    return 0;
}

执行顺序:n=125

  f(125)                     f(12)                    f(1)

      ↓                 ↗      ↓                  ↗    ↓ 

125>10        ↗      12>10         ↗       1<10

      ↓        ↗               ↓        ↗              ↓
调用f(125/10)     调用f(12/10)             输出1

        返回上一层执行剩下的语句           ↓

 125%10    ←         12%10      ←        返回上一层执行剩下的语句

    输出5                    输出2 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值