Làm sao để xoá 1 phần tử trong mảng (nếu biết trước vị trí cần xoá)
VỚI THUẬT TOÁN TỐI ƯU NHẤT (Độ phức tạp phải nhỏ hơn n)
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 <bits/stdc++.h>
using namespace std;
const long long maxint=1e6;
long long a[maxint],i,n,ln;
int main()
{
cin>>n;
for (i=1; i<=n; i++)
cin>>a[i];
ln=a[1];
for (i=1; i<=n; i++)
ln=max(ln,a[i]);
for (i=n; i>=1; i--)
if (ln==a[i])
{
cout<<i;
break;
}
return 0;
}
#include <bits/stdc++.h>
using namespace std;
long long a[150],i,s,n,nn;
int main()
{
cin>>n;
for (i=1; i<=n; i++) cin>>a[i];
s=1;
for (i=1; i<=n; i++)
if (a[i] %2!=0 && a[i]%3==0) s=s*a[i];
cout<<s<<endl;
nn=a[1];
for (i=1; i<=n; i++) nn=min(nn,a[i]);
for (i=n; i>=1; i--)
if (nn==a[i])
{
cout<<i<<endl;
break;
}
sort(a+1,a+n+1);
for (i=1; i<=n; i++) cout<<a[i]<<" ";
return 0;
}
Var a:array[1..30] of integer;
i,n,d,max:integer;
Begin
Write('Nhap so luong phan tu cua mang ');readln(n);
For i:=1 to n do
Begin
Write('Nhap phan tu thu ',i,' = ');readln(a[i]);
End;
max:=a[1];
For i:=2 to n do
Begin
If a[i] > max then
Begin
max:=a[i];
d:=i;
End;
End;
Write('Phan tu lon nhat la ',max,' o vi tri ',d);
Readln;
End.
#include <bits/stdc++.h>
using namespace std;
long long a[40],i,n,ln;
int main()
{
cin>>n;
for (i=1; i<=n; i++)
{
cin>>a[i];
}
ln=a[1];
for (i=1; i<=n; i++) ln=max(ln,a[i]);
for (i=n; i>=1; i--)
if (ln==a[i])
{
cout<<i;
break;
}
return 0;
}
uses crt;
var a:array[1..100]of integer;
i,n,dem,max,t,min,dem1:integer;
begin
clrscr;
write('n='); readln(n);
for i:=1 to n do
begin
write('A[',i,']='); readln(a[i]);
end;
dem:=0;
max:=-32000;
for i:=1 to n do
begin
if a[i] mod 2=0 then
begin
dem:=dem+1;
if max<a[i] then max:=a[i];
end;
if dem=0 then writeln('Trong day khong co so chan')
else begin
writeln('So so chan la: ',dem);
writeln('So chan lon nhat la: ',max);
end;
t:=0;
for i:=1 to n do
if i mod 2=1 then t:=t+a[i];
writeln('Tong cac so o vi tri le la: ',t);
min:=maxint;
dem1:=0;
for i:=1 to n do
if a[i] mod 2<>0 then
begin
inc(dem1);
if min>a[i] then min:=a[i];
end;
if dem1=0 then writeln('Trong day khong co so le')
else writeln('So le nho nhat la: ',min);
readln;
end.
uses crt;
var a:array[1..100]of integer;
i,n,t,min,vt: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 3=0 then t:=t+a[i];
writeln('Tong cac so chia het cho 3 la: ',t);
min:=a[1];
for i:=1 to n do
if min>a[i] then min:=a[i];
vt:=1;
for i:=1 to n do
if min=a[i] then
begin
if vt<i then vt:=i;
end;
writeln('Gia tri nho nhat la: ',min);
writeln('Vi tri la: ',vt);
readln;
end.
uses crt;
var a:array[1..100] of integer;
max,n,i:integer;
begin
writeln('nhap do dai cua day');readln(n);
for i:=1 to n do begin writeln('A[',i,']=;);readln(a[i]); end;
max:=a[1];
for i:=2 to n do if a[i] > max then begin
max:=a[i]; writeln('vi tri cua max trong day la',i);end;
readln
end.
thật ra thì cũng không cần biến max nhưng mình làm vậy cho dễ hiểu hơn nhé!
*Thuật toán:
-Bước 1: Nhập n và nhập dãy số
-Bước 2: max←a[1]; i←1;
-Bước 3: i←i+1;
-Bước 4: Nếu max<a[i] thì max←a[i];
-Bước 5: Nếu i<=n thì quay lại bước 3
-Bước 6: Cho for chạy từ 1 đến n
Nếu a[i]=max thì xuất i
-Bước 7: Kết thúc