https://www.zhihu.com/question/35791782/answer/64465266
作者:王维一
链接:https://www.zhihu.com/question/35791782/answer/64465266
来源:知乎
著作权归作者所有,转载请联系作者获得授权。
//假定我们提取数位的数最大是个十位数。
//这个是32位int的最大容量
const
int
digitCount
=
10
;
void
getDigit
(
//这是一个将输入的整数分解成十进制数位的函数
unsigned
int
a
,
//被提取数位的数
int
digits
[
/*digitCount*/
]
//用于接收提取结果的,长度为digitCount的数组,数位从高到低排列
){
unsigned
int
mask
[
digitCount
]
=
{
1000000000
,
100000000
,
10000000
,
1000000
,
100000
,
10000
,
1000
,
100
,
10
,
1
};
for
(
int
i
=
0
;
i
<
digitCount
;
i
++
){
digits
[
i
]
=
0
;
while
(
a
>=
mask
[
i
]){
digits
[
i
]
++
;
a
-=
mask
[
i
];
}
}
}
转载请注明原文地址: https://ju.6miu.com/read-968635.html