我是一名高中生,不久前我看到乘法比除法好。从那以后,在没有任何证据证明它是真实的或不知道自己现在如何找到它的情况下,我试图修改我的代码,以便稍微好一点。
这是一个问题,我想使用递归找到数字中的最大数字。
这个正在工作。
#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
.
关于c++ - x * 0.1 和 x/10 之间的区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65542341/