List<int> pal=new List<int>();
List<int> nums = new List<int>();
var thdigit1 = 1;
var thdigit2 = 999;
while (thdigit2>=1)
{
var holder=thdigit1* thdigit2;
nums.Add(holder);
thdigit2 -= 1;
if (thdigit2==0)
{
thdigit2 = 999;
thdigit1 += 1;
}
}
我在列表中得到了太多的内存过载问题。我的计算机可以处理一定的限制吗?谢谢
答案 0 :(得分:2)
问题是当thdigit2
为1
时,它仍在继续while
循环,
while (thdigit2>=1)
减少1
,然后变为0
thdigit2 -= 1;
并...重新发送回999
。
if (thdigit2==0)
{
thdigit2 = 999;
thdigit1 += 1;
}
因此,您永远不会离开while
循环,从而导致内存溢出。
要修复它,您可能需要在while
循环中添加另一个终止条件:
while(thdigit2 >= 1 && thdigit1 <= 10) //example