我需要做一个没有if或者相关的递归退出条件。要清楚,我只能使用基本语言。没有功能,没有功能指针,没有。我只是想以递归方式调用main()方法(坏方式,我知道),但没有其他方法,我需要确定性地终止程序,所以没有stackoverflow或任何方向,尽管类似hacky命题是受欢迎的。任何想法?
编辑: 这些要求适用于C ++ JAPH。我想使用递归的原因是做一个循环(也不允许)。以下是具体要求:
答案 0 :(得分:3)
我只是想以递归方式调用main() - 方法(坏风格,我知道)
不仅是糟糕的风格,而且标准明确禁止。您无法拨打main()
。
要明确我只能使用基本语言
我不知道你的意思"基本语言" - 但我猜你并不是指那种名为BASIC的语言。
我也不知道为什么在不使用像if
这样的条件的情况下限制你实现递归,我能想到的唯一方法是通过模板元编程。
示例:
template <uint64_t N> uint64_t fact ();
template <> uint64_t fact <1> ()
{
return 1;
}
template <uint64_t N> uint64_t fact ()
{
return N * fact <N-1>();
}
int main()
{
uint64_t x = fact <3>();
std::cout << x << "\n";
}