位数(digit),计算一个整数是几位数(C++)

计算一个整数是几位数(C++)

文章目录

  • 计算一个整数是几位数(C++)
  • 前言
  • 题目:
  • 解题思路:
  • 代码:
    • 运行结果
  • 总结


前言

刘汝佳算法《算法竞赛入门经典》第二章2.4.6上机练习第一题

题目:

输入一个不超过10的九次方的正整数,输出它的位数。例如:12735的位数是5.请不要使用任何数学函数,用四则运算和循环语句实现。

解题思路:

判断位数可以从第一位开始数也可以从最后一位开始数。从一个整数中获取其中一位数可以用除法或者取余来得到。而我们要求的就是位数,所以并不知道第一位是第几位,应该除以几去得到它。所以我们选择从个位数入手。方法:逐个出去最后一位数,知道直到只剩一位数终止。

代码:

#include
using namespace std;
int main()
{
	long long num;  //用int的话可能很有数据溢出问题,当数字过大则程序出错
	cin>>num;
	int i=1;  //一定要初始化,这里初始化为1是因为循环一开始就将num去掉了一位数
	while(num/=10//数完一位数就去掉一位
	{
		i++;   //计数
	} 
	cout<<i<<endl;
	return 0;
}

运行结果

位数(digit),计算一个整数是几位数(C++)_第1张图片


总结

先分析问题,判断从哪里入手,然后运用循环就能解决问题

你可能感兴趣的:(C++,算法,刘汝佳,c++,算法)