Kiểm tra một dãy số nguyên có là dãy cấp số cộng hay không
Submit solution
Points:
1
Time limit:
1.0s
Memory limit:
977M
Author:
Problem type
Allowed languages
Ada, Assembly, Awk, C, C++, C11, CLANG, CLANGX, Classical, COBOL, Coffee, CSC, D lang, DART, F95, FORTH, Fortrn, GAS32, GO, Haskell, Itercal, Java, kotlin, LEAN, LISP, LUA, MONOVB, Nasm, OCAML, Pascal, Perl, php, PIKE, prolog, Pypy, Python, Ruby 2, RUST, Scala, SCM, SED, SWIFT, TCL, TUR, V8JS, VB, ZIG
Cho dãy số nguyên gồm n phần tử
Bài toán đặt ra là bạn kiểm tra một dãy cho trước có phải là dãy cấp số cộng với một công sai nào đó không biết rằng công sai có thể âm, có thể bằng 0 hoặc dương
Input
Dòng đầu là số nguyên n
Dòng tiếp theo chứa n số nguyên có giá trị tuyệt đối không vượt quá
Output
Nếu dãy là cấp số cộng hãy xuất ra "Day la day cap so cong voi cong sai d" trong đó d là công sai của dãy
Nếu dãy không là cấp số cộng xuất ra "Day khong la day cap so cong"
Ví dụ 1
Input
Copy
5
3 4 5 6 7
Output
Copy
Day la day cap so cong voi cong sai 1
Ví dụ 2
Input
Copy
5
5 3 1 -1 -3
Output
Copy
Day la day cap so cong voi cong sai -2
Ví dụ 3
Input
Copy
5
1 2 3 5 4
Output
Copy
Day khong la day cap so cong
Comments
include<iostream>
include<math.h>
using namespace std; bool csc(int a[], int n){ if(n < 2){ return false ; } int d = a[1] - a[0]; for(int i = 2 ; i < n ; i++){ if(a[i] - a[i - 1] != d){ return false; } } return true ; } int main(){ int n ; cin >> n; int a[n]; for(int i = 1 ; i < n; i++){ cin >> a[i];
} if(csc(a, n)){ cout << "YES" << endl; } else { cout << "NO" << endl; } return 0; }
nhầm lẫn