作者在 2026-09-13 11:40:54 发布以下内容
LONG64 双向阶乘(int a)
{//以简洁代码提高阶乘效率
if (a < 0)return -1; // 表示输入错误
LONG64 aaa = 1;
int aa = 0;
sjc:if (a > 2 && ++aa < a - aa)
{
aaa *= (a - aa) * aa;
goto sjc;
}
if (aa == a - aa)
aaa *= aa;
return aaa * a;
}
————————————————
版权声明:本文为CSDN博主「智者知已应修善业」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/xianfajushi/article/details/121282065
LONG64 双向阶乘(int a)//仅用于正整数优化上述代码
{//以简洁代码提高阶乘效率
if (a < 0)return -1; // 表示输入错误
if(a == 0)retuen 1;
if(a < 3)retuen a;
LONG64 aaa = 1;
int aa = 1;
sjc:if (++aa < a)
{
aaa *= a * aa;
--a;
goto sjc;
}
if (aa == a)
aaa *= aa;
return aaa;
}
{//以简洁代码提高阶乘效率
if (a < 0)return -1; // 表示输入错误
LONG64 aaa = 1;
int aa = 0;
sjc:if (a > 2 && ++aa < a - aa)
{
aaa *= (a - aa) * aa;
goto sjc;
}
if (aa == a - aa)
aaa *= aa;
return aaa * a;
}
————————————————
版权声明:本文为CSDN博主「智者知已应修善业」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/xianfajushi/article/details/121282065
LONG64 双向阶乘(int a)//仅用于正整数优化上述代码
{//以简洁代码提高阶乘效率
if (a < 0)return -1; // 表示输入错误
if(a == 0)retuen 1;
if(a < 3)retuen a;
LONG64 aaa = 1;
int aa = 1;
sjc:if (++aa < a)
{
aaa *= a * aa;
--a;
goto sjc;
}
if (aa == a)
aaa *= aa;
return aaa;
}

