1.memset(Num,0,1000);
改成memset(Num,0,1000*sizeof(int));
原型是void *memset( void *s, int ch, size_t n);
2.你的输入输出有问题。你这个是死循环。出不来的。而且单case肯定的话有问题。因为多输入一次 。 正确的应该是 while(cin>>n) {...}
3.大内存最好放外部。防止内存不足。
4.这个问题最重要 好是把计算过的保存起来,防止多情况的时候,重复侵犯。最好用字符队列。
char arr[101][1000];