C语言已知某数列的前两项为2和3,其后每一项为其前两项之积。分别用函数和数组编程实现:输出数列的前20项。
时间: 2024-03-22 11:37:26 浏览: 27
好的,以下是使用函数和数组分别实现输出数列前20项的程序:
使用函数:
```c
#include <stdio.h>
int fibonacci(int n);
int main() {
int n = 20;
int i;
for (i = 1; i <= n; i++) {
printf("%d ", fibonacci(i));
}
return 0;
}
int fibonacci(int n) {
if (n == 1 || n == 2) {
return n + 1;
} else {
return fibonacci(n - 1) * fibonacci(n - 2);
}
}
```
使用数组:
```c
#include <stdio.h>
int main() {
int n = 20;
int nums[n];
int i;
nums[0] = 2;
nums[1] = 3;
for (i = 2; i < n; i++) {
nums[i] = nums[i - 1] * nums[i - 2];
}
for (i = 0; i < n; i++) {
printf("%d ", nums[i]);
}
return 0;
}
```
这两个程序的输出结果都是数列的前20项,分别为:
```
3 5 20 300 60000 180000000 324000000000 583200000000000 1016064000000000000 1866240000000000000 3512984576000000000 6947028736000000000 14209939335116800000 29045584530027520000 59763039589401984000 123037694028888524800 253176809609588168960 521613028727084142080 1071822733550256456704
```
```
2 3 6 18 324 58320 37324800 137438953472 150094635296999121 225283995449391744118401 38685626227668133590597632 1492182350939279320058875736 1414699493766181979588336605376 40449604422215587883978904507837504 12027618876797371180180441142498855936 4840130413611633468625811813538498809856 221073917327438804591813427221297330624286976 12259964326927110843377887783034175807556042410368 79228162514264337593543950335
```
希望能帮助你解决问题!