有数列定义为:f(0) = a, f(1) =b,f(n) = f(n-1)+f(n-2), 且0 < a < b < 20.现给出a, b, n,请问f(n)能否被3整除. 用c语言解决此问题
时间: 2023-12-14 13:04:03 浏览: 118
输入两个数,输出在它们之间所有能被3整除的数-C语言代码
好的,可以使用递归或循环的方式来解决此问题。以下是使用循环的代码示例:
```c
#include <stdio.h>
int main() {
int a, b, n, i, f_n, f_n_1 = 0, f_n_2 = 0;
printf("请输入a, b和n的值:");
scanf("%d %d %d", &a, &b, &n);
// 求解f(n)
for (i = 0; i <= n; i++) {
if (i == 0) {
f_n = a;
} else if (i == 1) {
f_n = b;
f_n_1 = a;
} else {
f_n = f_n_1 + f_n_2;
f_n_2 = f_n_1;
f_n_1 = f_n;
}
}
// 判断f(n)是否能被3整除
if (f_n % 3 == 0) {
printf("f(%d)能被3整除。\n", n);
} else {
printf("f(%d)不能被3整除。\n", n);
}
return 0;
}
```
在上面的代码中,我们使用了循环来求解f(n),并且使用三个变量f_n、f_n_1和f_n_2来保存f(n)、f(n-1)和f(n-2)的值。最后,我们判断f(n)是否能被3整除,输出相应的结果。
阅读全文