2
已采纳
褚俊皓
新手天翼
新手天翼
循环取位数
引言
我们知道对于一个正整数n,n%10可以求出n的个位数。
但如果想要求n的十位数,百位数,千位数,…… 该怎么办?
一、 提取个位数
对于一个n而言,模10可以用来提取个位数
1) 123/10=12…3 得到的余数是3
2) 这个余数即是个位数。
二、 三位数提取各个位数
1) 提取个位 a%10
2) 提取十位 a/10%10
3) 提取百位 a/100
三、 任意位提取各位数
原理:
就是把数字变到个位上再进行求余。
1) 即提取个位就除以1,提取十位就除以10,提取百位就除以100,提取千位就除以1000…
2) 然后求余10
四、 循环提取正整数n的每一位
原理:每次都提取n的最后一位(n%10),然后将n的最后一位除掉(n/=10),重复这个过程,就能把n的每一位都取出来。
代码实现:
int n,a[100],cnt=0;
cin>>n;
while(n){
a[++cnt]=n%10;
n/=10;
}
//a数组存储了n中从低位到高位的每一位数字
``
希望对你有帮助
0
高乐彤
修练者
修练者
int a,n[20],i=1;
cin>>a;
while(1){
if(a>=10){
n[i]=a%10;
a/=10;
i++;
}if(a<10){
n[i]=a;
break;
}
}
0
朱小川
缔造者
缔造者
0
包涵宇
中级天翼
中级天翼
代码:
//假设输入的数是a
int l=0;
int b[105];
while(a!=0){
l++;
b[l]=a%10;
a/=10;
}
//注意,这时数组中存储的是反向的!
0
杨坤泽
新手守护
新手守护
if(一个数<=100){
if(一个数/10==0 || 一个数%10==0){
执行对应的操作;
}else{
……我不知道了
}
}
杨坤泽在2021-05-13 17:24:26追加了内容
无
0