打印Fibonacci数列的前n个数,n<200,每行打印5个数字输出;
代码如下:
/*Fibonacci数列打印 打印Fibonacci数列的前n个数,n<200,每行打印5个数字输出;*/
void chapter1::printFibonacci()
{
printf_s("Fibonacci数列打印测试\r\n");
int n;
do
{
printf_s("请输入打印Fibonacci数列个数");
scanf_s("%d", &n);
}
while (n<=0 || n>= 200);
long long *f = (long long*)calloc(n, sizeof(long long));
f[0] = 1;
f[1] = 1;
for (int i = 2;i< n;i++)
{
f[i] = f[i - 1] + f[i - 2];
}
for (int i = 0;i<n;i++)
{
if (i!=0&&(i%5==0))
{
printf_s("\r\n");
}
printf_s("%d ", f[i]);
}
printf_s("Fibonacci数列打印测试结束\r\n");
}
这个我在测试的时候出现了溢出的情况,哪位大神看出了问题,帮我指正下~~,问题如下,在打印到后面的时候出现了负数,按照long long的范围应该不会出现负数才对: