C语言教材上的的数字倒排算法

这个算法我实在是看不明白啊

#include <stdio.h>/*标准输入输出头文件*/

int main()
{            
    int number,g,s,b,q,w; 
    printf("请输入一个5位整数:\n");
    scanf("%d",&number);/*从键盘接收一个5位整数*/
    g=number%10;/*将m模取10的结果赋值给g*/
    s=number/10%10; /*将m整除10模取10的结果赋值给s*/
    b=number/100%10;
    q=number/1000%10;
    w=number/10000%10;
    printf("逆序输出为:%d\n",g*10000+s*1000+b*100+q*10+w);//逆序输出
    return 0;
}

供参考:

#include <stdio.h>/*标准输入输出头文件*/
int main()
{
    int number,g,s,b,q,w;
    printf("请输入一个5位整数:\n");
    scanf("%d",&number);/*从键盘接收一个5位整数*/
    g=number%10;//这句得到     个位数字
    s=number/10%10; //这句得到 十位数字
    b=number/100%10;//这句得到 百位数字
    q=number/1000%10;//这句得到 千位数字
    w=number/10000%10;//这句得到 万位数字
    printf("逆序输出为:%d\n",g*10000+s*1000+b*100+q*10+w);//逆序输出
    return 0;
}