打印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的範圍應該不會出現負數纔對: