B - 数位数

Description
给定一个正整数 n ,请你求出它的位数。

Input
单组输入,输入一个整数 n 。(1<= n <= 2147483647)

Output
输出一行,包含一个整数,即为 n 的位数。

Sample

Input 
1234567
Output 
7
#include <iostream>
#include <cstring>
#include <algorithm>
#include <cstdio>
using namespace std;
int a;
int sum;
int main()
{
    cin>>a;
    do
    {
        sum++;
        a=a/10;
    }while(a);
    printf("%d\n",sum);
    return 0;
}

知识点:
**1.**while是当满足条件时进入循环,进入循环后,当条件不满足时,跳出循环。

2.while语句的一般表达式为:while(表达式){循环体}。

3.a++和++a 都属于自增运算符,区别是对变量a的值进行自增的时机不同。a++是先进行取值,后进行自增。++a是先进行自增,后进行取值。

例题
关于while中的表达式
while表达式(- -b,c- -,a- -)
1.表达式从左往右执行,为真则继续执行。- -b(先自减后取值),即b=1为真;c- -(先取值后自减),即c=2为真;a- -(先取值后自减),即a=1为真;所以表达式为真,进入循环体,就是执行输出三个变量的值。
2.第一次循环执行后各变量的值为,b=1,c=1,a=0。
执行循环体,输出a=0,b=1,c=1。

3.第二次循环,执行表达式(- -b,c- -,a- -); - -b(先自减后取值),即b=0,为假,不满足条件,跳出循环。

另一种题解

#include <iostream>
#include <cstring>
#include <algorithm>
#include <cstdio>
using namespace std;
int a;
int sum;
int main()
{
    cin>>a;
    do
    {
        sum++;

    }while(a=a/10);
    //有警告,理解为一般while中放的是判断语句,或者自增,自减,不
    适合放长表达式,表达式的执行可理解为重复判断,即重复执行。
    printf("%d\n",sum);
    return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

代码敲上天.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值