Duanxx的C++得知:计算位数

一旦计算出一个数值数字,基本上它是不断分裂使用10。重新计,看看有多少个数字。

今天发现能够考虑先将数字转换为字符串,然后通过string.length获得数值的位数,这样做方便的多。

string num2str1(unsigned int num)
{
	stringstream ss;
	ss<<num;
	return ss.str();
}

string num2str2(unsigned int num)
{
	char str_[10];
	sprintf_s(str_,"%d",num);
	string str = str_;

	return str;
}

///<直接计算出数字的位数
unsigned int getLenOfNum1(unsigned int num)
{
	unsigned int counter = 1;
	while (num/10)
	{
		counter++;
		num = num/10;
	}
	return counter;
}

///<先转换为字符串。然后在计算位数
unsigned int getLenOfNum2(unsigned int num)
{
	return num2str1(num).length();
}

版权声明:本文博客原创文章,博客,未经同意,不得转载。

时间: 2024-10-22 07:23:02

Duanxx的C++得知:计算位数的相关文章

Duanxx的C++学习:计算数字的位数

以前计算一个数值的位数,使用的基本上就是不停的除以10,再计数,看到底有多少位数. 今天发现可以考虑先将数字转换为字符串,然后通过string.length获得数值的位数,这样做方便的多. string num2str1(unsigned int num) { stringstream ss; ss<<num; return ss.str(); } string num2str2(unsigned int num) { char str_[10]; sprintf_s(str_,"%

求随机数大于等于5位数才退出循环

例子: 解答: #!/bin/bash num=0 while [ $num -ne 1 ] do   pd=`echo $RANDOM`   pd_length=`echo ${#pd}`   if [ $pd_length -ge 5 ]   then     break   else     echo $pd   fi done 注: $RANDOM为随机数 ${#pd}计算位数

使用Machin公式计算

使用Machin公式计算,并使用百亿进制+末项位数控制,这里可算出数万位(比最简PI快80倍),源代码约40行,在本网页中. 计算公式 PI=16arctg(1/5)-4arctg(1/239),其中arctg(x)=x-x^3/3+x^5/5-x^7/7+x^9/9... 令X=x^2并提取公因式得:arctg(x)=x(1-X(1/3-X(1/5-X(1/7-X(…,只需迭代b=1/(2n+1)-b*X,n=N,…,3,2,1,0,最后算b*x即得arctg(x) 要想快速计算几十万位或几百

LeetCode OJ:Add Digits(数字相加)

Given a non-negative integer num, repeatedly add all its digits until the result has only one digit. For example: Given num = 38, the process is like: 3 + 8 = 11, 1 + 1 = 2. Since 2 has only one digit, return it. Follow up: Could you do it without an

NYOJ 485

A*B Problem 描述 设计一个程序求出A*B,然后将其结果每一位相加得到C,如果C的位数大于等于2,继续将C的各位数相加,直到结果是个一位数k. 例如: 6*8=48: 4+8=12: 1+2=3: 输出3即可. 输入 第一行输入一个数N(0<N<=1000000),表示N组测试数据.随后的N行每行给出两个非负整数m,n(0<=m,n<=10^12). 输出 对于每一行数据,输出k. 样例输入 3 6 8 1234567 67 454 1232 样例输出 3 4 5 这道题

DOM的小疑问收集

1.DOM,Doncument object model 文档对象模型 页面中的所有内容都是对象,包括所有的文字,标签,属性,就是说,DOM就是页面中大对象中有很多小对象,树形结构. 1.1xml文件是用来存储信息的,而且xml的好处是不会跟随软件的消失消失,可以在电脑中直接打开 2.js的作用最初的目的就是验证密码,后来加入了js对页面html中元素的操作,就是---DOM. 3.页面中的顶级对象是document,不是浏览器中的顶级对象,标签可以叫做节点(node==标签==元素),文档元素

输入小于八位的数然后逆序输出

23456->65432 主要方法 result = result + m % 10;//123%10=3 32 321   m = m / 10;//12 1 0   result = result * 10;//30 36 320 3210 1 //23456->65432 而且不能超过8位 2 3 //2017.3.7 4 5 #include <stdio.h> 6 #include <stdlib.h> 7 8 int main() 9 { 10 int m

C - Big Number

Description In many applications very large integers numbers are required. Some of these applications are using keys for secure transmission of data, encryption, etc. In this problem you are given a number, you have to determine the number of digits

HDU 3652 B-number

数位DP dp[i][j][k][m]表示最高位为i,数字j在首位,之前是否出现过13,余数是m的情况下的个数 代码有详细注释,做完这题,感觉逐渐了解了数位DP #include <iostream> #include <cstdio> #include <cstdlib> #include <cstring> #include <algorithm> #include <queue> #include <vector>