首页 > 解决方案 > 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 有什么区别?

感谢大家点击问题并尝试提供帮助!

标签: c++

解决方案


0.1是双精度类型,10是整数类型。

例如,当除两个整数时n / 10,您将得到整数除法(例如6/10将等于0)。

并且您的支票在使用时会有所不同,6 * 0.1因为这将等于0.6


推荐阅读