从控制台输入整数n(2 <= n <= 20)。在标准输出上输出最长的连续奇数序列,按从小到大的顺序输出,中间用一个空格分隔,最后一个奇数后的空格可有可无。用c语言代码实现
时间: 2024-05-22 10:16:46 浏览: 64
#include <stdio.h>
int main() {
int n;
scanf("%d", &n); // 输入整数n
int start = 1; // 初始化起始点
int length = 1; // 初始化序列长度
int max_start = 1; // 最长序列的起始点
int max_length = 1; // 最长序列的长度
for (int i = 2; i <= n; i++) {
if (i % 2 == 1) { // 如果是奇数
if (start + length == i) { // 如果当前数可以接在序列后面
length++; // 序列长度加一
} else { // 否则,当前数不可以接在序列后面,更新最长序列信息
if (length > max_length) { // 如果当前序列比最长序列长
max_start = start; // 更新最长序列的起始点
max_length = length; // 更新最长序列的长度
}
start = i; // 重新设置起始点
length = 1; // 重新设置序列长度
}
}
}
if (length > max_length) { // 最后还要再判断一次
max_start = start;
max_length = length;
}
for (int i = max_start; i < max_start + max_length; i++) { // 输出最长序列
printf("%d ", i);
}
return 0;
}
阅读全文