

VT08 - Biến đổi mảng 1 chiều Xem dạng PDF Gửi bài giải Danh sách bài nộp Bài nộp tốt nhất Điểm:1,00 (OI) Giới hạn thời gian:1.0s Giới hạn bộ nhớ:256M Tác giả: Hieu NguyenLCOJ Admin Dạng bài Ngôn ngữ cho phép C, C#, C++, Go, Java, Pascal, Perl, PHP, Python, Ruby, Rust, Scratch, Swift Cho mảng bao gồm số nguyên nhập từ bàn phím. Hãy viết chương trình biến đổi mảng theo quy tắc sau: Tại các chỉ số lẻ của mảng, tăng giá trị của phần tử đó thêm 1 lượng đúng bằng chênh lệch 2 phần tử lân cận của nó. Trong trường hợp không có lân cận trái hoặc phải, coi như lân cận bị thiếu đó có giá trị là 0. Chỉ số mảng được tính bắt đầu từ 0 Giải thích: Phần tử lân cận trái của là , với Phần tử lân cận phải của là , với Input Dòng đầu tiên là số nguyên dương Dòng tiếp theo là số nguyên tương ứng là các phần tử của mảng Trong đó Output Mảng sau khi đã biến đổi theo quy tắc, các phần tử cách nhau 1 dấu cách. Sample Input #1 Copy 4 1 3 2 5 Output #1 Copy 1 4 2 7
Hãy luôn nhớ cảm ơn và vote 5*
nếu câu trả lời hữu ích nhé!
`C++`
#include<bits/stdc++.h>
#define ll long long
#define db double
#define str string
#define fi first
#define se second
#define mod 1000000007
#define maxn 100000
#define si size()
using namespace std;
int main()
{
ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0);
ll n;
cin>>n;
ll a[n+1];
a[n]=0;
for(ll i=0;i<n;i++) cin>>a[i];
for(ll i=1;i<n;i+=2) a[i]+=abs(a[i-1]-a[i+1]);
for(ll i=0;i<n;i++) cout<<a[i]<<" ";
}
Hãy giúp mọi người biết câu trả lời này thế nào?

`C#`
using System;
class Program
{
static void Main()
{
// Đọc số lượng phần tử n
if (!int.TryParse(Console.ReadLine(), out int n)) return;
// Đọc mảng từ dòng tiếp theo
string[] input = Console.ReadLine().Split(new[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);
long[] a = new long[n];
for (int i = 0; i < n; i++)
{
a[i] = long.Parse(input[i]);
}
// Biến đổi mảng tại các chỉ số lẻ
for (int i = 1; i < n; i += 2)
{
long left = (i - 1 >= 0) ? a[i - 1] : 0;
long right = (i + 1 < n) ? a[i + 1] : 0;
// Tăng giá trị phần tử tại i thêm một lượng bằng chênh lệch lân cận
a[i] += Math.Abs(left - right);
}
// In mảng kết quả
Console.WriteLine(string.Join(" ", a));
}
}Hãy giúp mọi người biết câu trả lời này thế nào?

Bảng tin