我和弗拉基米尔·格里戈夫都有严重的问题。
在我们的工作中,我们现在研究非常困难的算法,该算法使用限制来确定特定结果。
Alghoritm繁重,经过两个月的工作,我们发现确实存在严重问题。我们的分析团队告诉我要解决此问题。
首先,我告诉你这个问题,必须通过限制来解决: 我们数据库中的数据很多。 Ec INT_MAX。 对于每个数据,我们必须按照算法将它们分类为两组,一组必须具有红色解释,第二组必须具有蓝色。
该算法使用ID字段进行计数,该ID字段是一些AUTO_INCREMENT值。对于此值,我们检查该值是否等于1。如果是,则为红色数据。如果为零,则为蓝色数据。如果更多。然后,必须减去2,然后再次检查。
我们通过for循环来选择大型头脑风暴方法,但是对于更大的对象来说,这确实很慢。所以我们想删除周期,而我的同事告诉我使用递归。
我这样做了。但是...实施后,我遇到了一个未知的大整数错误,例如long long int并在他被写道:“ Stack Overflow Exception”
因此我决定在这里写,因为IDE告诉了我该页面的名称,所以我认为这里可能是Answer。
非常感谢。大家。
答案 0 :(得分:0)
在您发表评论后,我想我可以解决它:
python manage.py
任何val的中途值都会轻易打破这一点。这根本不可能与递归一起使用。没有CPU支持将堆栈跟踪关闭延长一半。MaxInt!
但是您的代码存在一些一般性问题:
public bool isRed(long long val) {
if (val==1)
{return true; }
else if (val==0)
{ return false; }
else { return isRed(val - 2); }
}
如果减去的值不是静态的,并且不能通过模来求解,那么这里就没有理由不使用循环。
if(val%2 == 0) return false; else return true;