-3

这个很难,因为我在互联网上找不到。请编写一个不使用 C++ 中的 math.h 库的程序,在该程序中,您将显示从 1 到用户输入范围的所有 armstrong 数字。

4

1 回答 1

2

不会给你完整的代码 - 使用随后的乘法来找到权力。其余的应该是直截了当的。

这里有一些代码,如果这是家庭作业,你不能使用,因为它会给你带来麻烦:

bool isArmstrongNumber(int x)
{
   //some magic happens here
}

template<int x>
struct armstrong_number
{
    armstrong_number()
    {
        if ( isArmstrongNumber(x) )
            std::cout << x << endl;
        armstrong_number<x-1> y;
    }
};

template<>
struct armstrong_number<0>
{
    armstrong_number()
    {
        std::cout << 0 << endl;
    }
};

int main()
{
    armstrong_number<999> x;
}
于 2012-09-04T08:32:34.060 回答