求整数位数

求取整数位数的三种方法:

1 用 “/= ”的方法:

Code:
  1. #include <iostream>   
  2. #include <cmath>   
  3.   
  4. using namespace std;   
  5.   
  6. int main (void) {   
  7.     int num = -12345;   
  8.     num = fabs(num);   
  9.     int cnt = 0;   
  10.     while (num) {   
  11.         num /= 10;   
  12.         ++cnt;   
  13.     }   
  14.     cout << "The length of num is " << cnt << endl;    
  15.     return 0;   
  16. }  

2 用iota(int , char* , int base) 函数 :

Code:
  1. #include <iostream>   
  2. #include <string>   
  3. #include <cmath>   
  4.   
  5. using namespace std;   
  6.   
  7. const int N = 20;    
  8.   
  9. int main (void) {    
  10.      char str[N];    
  11.      memset (str, '/0'sizeof(str));   
  12.      int num = -12345; // 12345    
  13.   
  14.      itoa ((int)fabs(num), str, 10); // 10 指代是以 10 为基数的转换    
  15.   
  16.      int strLen = strlen (str);   
  17.   
  18.      cout << "The length of num is " << strLen << endl;   
  19.      return 0;   
  20. }  

3. 用math.h 头文件中的 log10() 函数:

Code:
  1. #include <iostream>   
  2. #include <cmath>   
  3.   
  4. using namespace std;   
  5.   
  6. int main (void) {   
  7.   
  8.     int num = -12345; // 12345   
  9.   
  10.     int numLen = log10((double)fabs(num)) + 1; // 先求绝对值,再计算位数   
  11.   
  12.     cout << "The length of num("<<num <<") is " << numLen << endl;   
  13.   
  14.     return 0;   
  15. }   

编译环境:vc6.0

可能还有其他方法,欢迎大家补充。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值