x*0.1和x/10之间的区别?
我是一名高中生,不久前我看到乘法比除法好。从那以后,在没有任何证据证明它是真实的或不知道自己现在如何找到它的情况下,我试图修改我的代码,以便稍微好一点。
这是一个问题,我想使用递归找到数字中的最大数字。
这个正在工作。
#include <iostream>
using namespace std;
int minn = 9;
int digit(int n)
{
if(minn > n % 10)
minn = n % 10;
if(!(n / 10))
return minn;
else
return digit(n / 10);
}
int main()
{
int x;
cin >> x;
cout << digit(x);
return 0;
}
但这是行不通的。
#include <iostream>
using namespace std;
int minn = 9;
int digit(int n)
{
if(minn > n % 10)
minn = n % 10;
if(!(n * 0.1))
return minn;
else
return digit(n / 10);
}
int main()
{
int x;
cin >> x;
cout << digit(x);
return 0;
}
唯一的区别是,一个破碎的使用if(!(n * 0.1))不是if(!(n / 10))。
有人可以为我或任何寻求帮助的人澄清 x * 0.1 和 x / 10 之间的区别吗?
感谢大家点击问题并尝试提供帮助!
回答
0.1是双精度型,10是整型。
当两个整数相除时,例如,n / 10您将得到整数除法(例如,6/10将等于0)。
并且您的支票在使用时会有所不同,6 * 0.1因为这将等于0.6.