我是一名高中生,不久前我看到,乘除法比除法更好。从那时起,在没有任何证据证明它是真的还是不正确的情况下,并且此刻我自己都不知道如何找到它,我试图在那段更好的时间内修改我的代码。
这是一个我想使用递归查找数字中最大位数的问题。
这个正在工作。
#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
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句