Hãy nhập câu hỏi của bạn vào đây, nếu là tài khoản VIP, bạn sẽ được ưu tiên trả lời.
#include <iostream>
#include <vector>
using namespace std;
bool divideArray(vector<int>& nums, int N) {
int totalSum = 0;
for (int i = 0; i < N; i++) {
totalSum += nums[i];
}
if (totalSum % 2 != 0) {
return false;
}
int halfSum = totalSum / 2;
vector<vector<bool>> dp(N + 1, vector<bool>(halfSum + 1, false));
dp[0][0] = true;
for (int i = 1; i <= N; i++) {
for (int j = 0; j <= halfSum; j++) {
dp[i][j] = dp[i - 1][j];
if (j >= nums[i - 1]) {
dp[i][j] = dp[i][j] || dp[i - 1][j - nums[i - 1]];
}
}
}
return dp[N][halfSum];
}int main() {
int N;
cout << "Nhập số phần tử N: ";
cin >> N;
vector<int> nums(N);
cout << "Nhập các phần tử của mảng: ";
for (int i = 0; i < N; i++) {
cin >> nums[i];
}
bool isPossible = divideArray(nums, N);
if (isPossible) {
cout << "Có thể chia mảng thành hai đoạn có tổng bằng nhau." << endl;
} else {
cout << "Không thể chia mảng thành hai đoạn có tổng bằng nhau." << endl;
}
return 0;
}
Câu 1:
uses crt;
var a:array[1..100]of integer;
i,n,t:integer;
begin
clrscr;
write('Nhap n='); readln(n);
for i:=1 to n do
begin
write('A[',i,']='); readln(a[i]);
end;
t:=0;
for i:=1 to n do
t:=t+a[i];
writeln('Tong cac so trong mang la: ',t);
readln;
end.
Câu 2:
uses crt;
var a:array[1..100]of integer;
i,n,t:integer;
begin
clrscr;
write('Nhap n='); readln(n);
for i:=1 to n do
begin
write('A[',i,']='); readln(a[i]);
end;
t:=0;
for i:=1 to n do
if a[i] mod 2=0 then t:=t+a[i];
writeln('Tong cac so chan la: ',t);
readln;
end.
#include <bits/stdc++.h>
using namespace std;
long long n,i,x,t;
int main()
{
cin>>n;
t=0;
for (i=1; i<=n; i++)
{
cin>>x;
if (x<0) t+=x;
}
cout<<t;
return 0;
}
uses crt;
var a,b:integer;
{-------------chuong-trinh-con-tinh-tong---------------------}
function tong(x,y:integer):integer;
begin
tong:=x+y;
end;
{-------------chuong-trinh-con-tinh-tich------------------}
function tich(x,y:integer):integer;
begin
tich:=x*y;
end;
{-----------------chuong-trinh-con-so-lon------------------}
function solon(x,y:integer):integer;
begin
if x>y then solon:=x
else solon:=y;
end;
{-----------------chuong-trinh-con-so-be------------------}
function sobe(x,y:integer):integer;
begin
if x<y then sobe:=x
else sobe:=y;
end;
{--------------------chuong-trinh-chinh-----------------}
begin
clrscr;
write('Nhap a='); readln(a);
write('Nhap b='); readln(b);
writeln('Tong la: ',tong(a,b));
writeln('Tich la: ',tich(a,b));
writeln('So lon la: ',solon(a,b));
writeln('So be la: ',sobe(a,b));
readln;
end.
const fi='input.txt';
fo='output.txt';
var f1,f2:text;
a:array[1..100]of integer;
i,n,t:integer;
begin
assign(f1,fi); reset(f1);
assign(f2,fo); rewrite(f2);
n:=0;
while not eof(f1) do
begin
inc(n);
read(f1,a[n]);
end;
t:=0;
for i:=1 to n do t:=t+a[i];
write(f2,t);
close(f1);
close(f2);
end.
uses crt;
var a:array[1..100]of integer;
i,n,t:integer;
begin
clrscr;
write('Nhap n='); readln(n);
for i:=1 to n do
begin
write('A[',i,']='); readln(a[i]);
end;
t:=0;
for i:=1 to n do
if a[i] mod 2<>0 then t:=t+a[i];
writeln(t);
readln;
end.
uses crt;
var x,y:integer;
{-------------------chuong-trinh-con-tong----------------------------}
function tong(a,b:integer):integer;
begin
tong:=a+b;
end;
{-------------------chuong-trinh-con-hieu----------------------------}
funtion hieu(a,b:integer):integer;
begin
hieu:=a-b;
end;
{-------------------chuong-trinh-con-tich----------------------------}
function tich(a,b:integer):integer;
begin
tich:=a*b;
end;
{-------------------chuong-trinh-con-thuong----------------------------}
function thuong(a,b:integer):real;
begin
thuong:=a/b;
end;
{----------------------chuong-trinh-chinh-----------------------}
begin
clrscr;
write('Nhap x='); readln(x);
write('Nhap y='); readln(y);
writeln('Tong la: ',tong(x,y));
writeln('Hieu la: ',hieu(x,y));
writeln('Tich la: ',tich(x,y));
writeln('Thuong la: ',thuong(x,y):4:2);
readln;
end.
Bước 1: Đặt lại tổng
a[1]=a[1];
a[2]=a[1]+a[2];
a[3]=a[1]+a[2]+a[3]
…
a[n]= a[1]+a[2]+ … + a[n]
Bước 2: Gọi S=a[n] ta duyệt từ đầu đến dãy nếu chỗ nào S chia hết cho a[i] thì tức là có thể phân dãy ra các đoạn bằng nhau có tổng là a[i] (thực chất a[1]+…+a[i]) ta kiểm tra xem có đúng như vậy không thông qua vòng lặp tạo ra dãy a[i], a[i]*2 … a[i]*k=S, nếu vượt quá số thứ tự thì dừng không thỏa mãn, nếu tìm được thì xuất a[i]
Bước 3: Nếu không có phần tử nào thỏa mãn thì xuất ra S là toàn dãy
Bạn giải cụ thể giúp mình đc không