1.判断整数n的位数
依次丢弃个位,十位......
例:int n=123; i=0;
丢弃个位:123/10=12 i=1
丢弃十位:12/10=1 i=2
丢弃百位:1/10=0 i=3
当算到0时,循环结束,输出位数为3.
int i=0;
do{
i++;
n/=10;
}while(n!=0);
return i;
}
2.逆序输出n的每一位数字
例:int n=123
保留个位:123%10=3 丢弃个位 123/10=12
保留十位:12%10=2 丢弃十位 12/10=1
保留百位:1%10=1 丢弃百位 1/10=0
{
int a=n%10;
n/=10;
printf("%d\n",a);
}while(n!=0)
3.判断n中有多少个1
只需要在2题的基础上加入a是否等于1的条件,不难想出要用if语句进行判断.
同理可推出求一个数中的某个数字个数也可以用这种方法。
int i=0
while(n!=0){
int a=n%10;
if(a==1){
i++;
n/=10;}
printf("%d",i);