查找数字中尾随零的数量
finding number of trailing zeroes in a number
我想找到数字中尾随零的数量,所以我编写了以下代码。它对某些数字工作正常,但对于更大的数字,它开始显示异常。就像当我输入数字"12345678"时,它显示零 0 是正确的,但当我输入"123456789"时,它显示一个零,我的代码中可能出现什么错误???
#include<iostream>
#include<math.h>
using namespace std;
int main(){
int n = 0;
float s;
cin>>s; //the number to be given as input
for(int j = 0;j <100;j++){
s = s/10;
if(s == floor(s)){
n++;
}else{
break;
}
}
cout<<n<<endl;
return 0;
}
浮点数的精度有限。通常,float 是 32 位数字,double 是 64 位数字。如果整数小于或等于 16777216(为 2^24),则 Float 可以精确地存储整数。
因此,当123456789被读入浮点变量时,将具有不同的值,它变得123456792。在这一点上,没有理由计算尾随零。
如果整数小于或等于 9007199254740992 (2^53),Double 可以精确地存储整数。
unsigned long long int
可以存储小于 2^64 的整数。如果选择这种方式,请使用此条件检查尾随零:if (number%10==0)
如果您只想计算尾随零,仅此而已,请改用std::string
。通过这种方式,您可以根据需要处理任意大的数字。
相关文章:
- 查找最接近的大于当前数字的数字的索引
- 在 c++ 中查找字符串中没有循环的数字总和
- 程序以使用 C++ 中的 while 循环查找一组数字的最小值
- 在C++的一系列数字中查找重复模式
- 为什么使用数组元素查找最大数字的程序不起作用?
- C++ 函数,用于查找传入的 N 个数字的平均值、总和、最小值和最大值
- 查找数字是否为 2 的幂的时间复杂度
- 如何在不使用 C++ 中的数组或函数的情况下查找 N 位数字的所有排列
- 使用 XOR 逻辑查找缺失的数字
- 查找中间两个数字的正则表达式的匹配项
- 查找数组中的最小数字
- 查找数组中重复(重复)数字的索引
- 程序 查找数字的重复
- 如何查找数字大于 5 的数字总和
- 查找数组中给定数字的出现次数
- 在 C++ 中查找 2 个数字的 GCD
- 代码以查找数组中的最大数字,但它仅将第一个数字显示为最大数字. 有人请告诉我为什么
- 如何制作一个查找数字平方值的 c++ 程序
- 查找整数数组中最接近的数字
- C ++递归与大数字查找mod