7-3 函数-斐波那契数列 分数 20 作者 韩玫瑰 单位
时间: 2023-06-27 08:04:32 浏览: 54
to %s...", config.ssid);
retry++;
}
if (ap_info.authmode) {
ESP_LOGI(TAG, "Connected to %s", config.ssid);
// 启动发送数据的任务
xTaskCreate(send_task, "send_task题目描述:
斐波那契数列指的是这样一个数列:0、1、1、2、3、", 4096, NULL, 5, NULL);
} else {
ESP_LOGE(TAG, "Failed to connect to %s5、8、13、21、34、……,即第 n 个数等于前两个数之和,其中 n", config.ssid);
// 重启设备
xTaskCreate(restart_task, "restart_task", 4096, >= 2。
请你编写一个函数 fib(n),接受一个整数 n 作为参数,返回第 n 个 NULL, 5, NULL);
}
}
// 任务:发送数据
void send_task(void *args)
{
// 创建TCP斐波那契数。例如,调用 fib(2) 将返回 1,调用 fib(10) 将返回 55客户端
int sock = socket(AF_INET, SOCK_STREAM, IPPROTO_IP);
if (sock < 0) {
ESP。
输入格式:
一个整数 n。
输出格式:
一个整数,表示第 n 个斐波那契数。
函数接_LOGE(TAG, "Failed to create socket");
vTaskDelete(NULL);
}
// 连接TCP服务器
struct sockaddr口定义:
int fib(int n);
输入样例:
10
输出样例:
55
数据规模:
对于 30%_in server_addr = {
.sin_family = AF_INET,
.sin_addr = {
.s_addr = inet_addr(config.remote 的数据,1 ≤ n ≤ 20。
对于 60% 的数据,1 ≤ n ≤ 30。
对于 100_ip),
},
.sin_port = htons(config.remote_port),
};
if (connect(sock, (struct sockaddr *)&server_addr% 的数据,1 ≤ n ≤ 100。
解题思路:
使用递归实现斐波那契数列会, sizeof(server_addr)) < 0) {
ESP_LOGE(TAG, "Failed to connect to server");
close(sock);
//存在大量的重复计算,导致时间复杂度非常高,因此我们应该使用动态规划来解决这个问题。
我们可以使用一个数组 dp 来存储之前计算过的斐波那契数,然 重启设备
xTaskCreate(restart_task, "restart_task", 4096, NULL, 5, NULL);
vTaskDelete(NULL);
}
// 发送数据
char *data = "123456789\n";
while (1后在计算 dp[i] 的时候,直接使用 dp[i-1] 和 dp[i-2] 的值,避) {
if (send(sock, data, strlen(data), 0) < 0) {
ESP_LOGE(TAG, "Failed免了重复计算。
具体而言,我们可以先初始化 dp[0] = 0 和 dp[1] = to send data");
close(sock);
// 重启设备
xTaskCreate(restart_task, "restart_task", 1,然后使用 dp[i] = dp[i-1] + dp[i-2] 来计算 dp[i] 的值。
最后返回 dp[n] 即可。