整数拆位

/*
 整数拆位
     1)拆出整数的各个数,比如一个数:1234,要拆出每位,1 2 3 4输出;
     2)如果知道整数的各个位,如何组装成一个整数,比如:百位是3,十位是2,个位是1,结果是:321。
 
 理解整数的构造原理
    1234 = 1*1000 + 2*100 + 2*10 + 4
    1000,100,10,1叫权重,每个数位的权重不一样。各位数字*对应数位权重再相加
    所以如果知道各个位数字,是可以组装出这个整数的。
 
 拆位的规律
    1234要得到各个数,可以通过/和%方式得到
    根据整除原理可得:
        /10去1个尾数,/100去2个尾数,/1000去3个尾数
    根据取余数原理可得:
        %10得1个尾数,%100得2个尾数,%1000得3个尾数
 
 总结:
 能熟练拆出整数的各个位,用/10和%10方式
 知道整数的各个数能组装出这个整数
 */

#include <iostream>
using namespace std;

int main() {
    int n = 1234;
    int q,b,s,g; //千,百,十,个
    
    g = n%10; //得1个尾数
    s = n/10%10; //先去1个尾数得123,再得1个尾数3
//    s = n%100/10 //先得2个尾数34,再去一个尾数4得3,总结对于中间的数,需要有两步,首先通过得尾数或去尾数把这个数放到开头或结尾,再一次去尾数或得尾数即可
    b = n/100%10; //先去2个尾数得12,再得1个尾数2
    q = n/1000; //去3个尾数得1
    
    cout<<q<<" "<<b<<" "<<s<<" "<<g<<endl;
    return 0;
}