给定n个整数(0-100),其中0可以替换成任意其他数字,要求判断这n个整数是否连续?(存在重复数字也判定为连续)
列 输入 5 6 7 8 9
输出 true
输入 5 0 7 8 9
输出 true
输入 5 6 7 8 9
输出 true
输入 5 8 6 7 9
输出 false
给定n个整数(0-100),其中0可以替换成任意其他数字,要求判断这n个整数是否连续?(存在重复数字也判定为连续)
列 输入 5 6 7 8 9
输出 true
输入 5 0 7 8 9
输出 true
输入 5 6 7 8 9
输出 true
输入 5 8 6 7 9
输出 false
你的问题没有交代很清楚,一个是n=0的时候,算true还是false(我的程序算true)
一个是什么叫做“连续”,是连续增长或者下降,还是相隔两个数字的绝对值=1(比如 1 2 3 2 1算不算连续,我的程序不算,但是1 3 5 7 9算)
#include <iostream>
using namespace std;
int main()
{
int order = 0;
int r = 1;
int n, x, y, n1 = 0;
cin >> n;
for (int i = 0; i < n; i++)
{
cin >> y;
if (y == 0) continue;
if (n1 != 0)
{
if (order != 0)
{
if ((x < y && order == 2) || (x > y && order == 1))
{
r = 0;
}
}
else
{
if (x > y) order = 2;
else if (x < y) order = 1;
}
}
x = y;
n1++;
}
if (n1 < 2 || r == 1) cout << "true"; else cout << "false";
return 0;
}