ct.cpp
来自「一般来说用int型变量超过2^31的数就会溢出。此程序是利用数组对长度很长的整形」· C++ 代码 · 共 38 行
CPP
38 行
#include <iostream.h>
const int NUMBER=30;
const int GAP=2; //it makes error result when GAP is bigger than 2
int getNext(int *pNum, int begin)
{
begin;
int count=0;
for(int i=begin;;i++)
{
if (0==*(pNum+i)) break;
else count++;
if (2==*(pNum+i))
{
i=0;
if(0==*(pNum+i)) break;
}
if (count>=NUMBER) return 0;
}
return i+1;
}
void main()
{
int array[NUMBER+1]={0};
array[NUMBER]=2; //terminate number
int begin=1,next=1; int last=0;
array[begin-1]=1;
while(0!=next)
{
for(int i=0; i<GAP; i++)
next=getNext(array, next);
if(0!=next) { array[next-1]=1; last=next; }
else break;
}
cout<<"The last peason left is "<<last<<endl;
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?