lOMoARcPSD| 58583460
CODE MẪU
LEVEL 1
1.Ktra năm nhuận:
int xetnam (int n)
{
if (n>0)
{ if (n%4==0 && n%100 !=0 || n%400==0)
return 1;//nhuan else return 2;//khong
nhuan
}
else
return 0;
}
2.độ dài tam giác:
int xetTamGiac(float a, float b, float c)
{ if (a>0 && b>0 && c>0 && a+b>c && b+c>a && a+c>b)
{
return 1;
}
else
return 0;}
3.đổi chữ thương thành hoa. Ngược lại
4.làm tròn(phần lẻ >=0.5 làm tròn lên)
char kiTu (char x)
{
if ('A' <= x && x <=
'Z') return x +(32);
else
return x-(32);
}
lOMoARcPSD| 58583460
int Baitoanlamtron(double a)
{
float temp;
temp = a-
(int)a;
if (temp < 0.5 && temp !=0.5)
{
return (int)a;
}
else return
a+1;
}
4.xuất ra số nguyên lớn nhất nhưng nhỏ hơn a (a=3.2->3, a=5->4)
int tinhToan (double a)
{
float temp; temp
= a - (int)a; if
(temp!=0)
{
return (int)a;
}
else
return a-1;
}
LEVEL 2
1.Xác định là tam giác gì (thg,cân,vuông,đều,vuông cân)
int xetTamGiac(float a, float b, float c)
{ if (a>0 && b>0 && c>0 && a+b>c && b+c>a && a+c>b)
{
if (a==b && b==c )
return 1;// "tam giac deu"
lOMoARcPSD| 58583460
if (a==b || a==c || b==c)
if (a*a+b*b == c*c || a*a+c*c == b*b || b*b+c*c == a*a)
return 2;// "tam giac vuong can" else
return 4;// "tam giac can " else
if (a*a+b*b==c*c||a*a+c*c==b*b||b*b+c*c==a*a)
return 3;// "tam giac vuong" else
return 5; // "tam giac thuong"
}
else
return 0;// "khong phai la tam giac"
2.giải pt bậc 2
int giaiPt (float a, float b, float c, float &x1, float & x2)
{
if (a == 0) if (b==0) if (c==0)
return 4;// phuong trinh co vo so nghiem
else return 0;// "phuong trinh vo
nghiem"
else
{
x1= -c/b; return 1;// "phuong trinh
co 1 nghiem
}
else
{
float denta = b*b-4*a*c;
if (denta <0)
return 0; else
lOMoARcPSD| 58583460
if (denta =0)
{ x1=-b/2*a; return 3;// phuong trinh
co nghiem kep
} else x1= (-b+ sqrt(denta))/(2*a); x2=(-b-
sqrt(denta))/(2*a); return 2;// phuong trinh co 2
nghiem pham biet
}
if (a==0)
if (b==0)
if(c==0)
return 4;
else
return 0;
else {
x1=-c/b; return 1;
}
else
{
float denta =b*b-4*a*c; if
(denta<0)
return 0;
else
if (denta =0){
x1=-b/2*a; return 3;
}else
x1=(-b+sqrt (denta))/(2*a); x2=(-b-sqrt
(denta))/(2*a); return 2;
lOMoARcPSD| 58583460
}
}
3. Sau một giây:
void xuLy(int& h, int& m, int& s)
} s += 1;
if (s == 60)
{
s = 0;
m +=
1;
if (m == 60)
{ m = 0; h +=
1;
if (h == 24)
{ h = 0;
}
}
}
}
void xuat(int h, int m, int s)
{ printf("%d %d %d", h, m, s); }
LEVEL 3
1.Tổng ước số
return s;
}
2.Tổng các chữ số
int tinhTong (int n)
{
int i= 1; int
s=0; while
(i<=n)
{
if (n%i==0)
s=s+i; i=i+1;
}
lOMoARcPSD| 58583460
int tinhTong(int n) {
int total=0;
do{
total=total +n%10;
n=n/10; }while (n>10);
return total;
}
3.Xuất ra số ngược lại:
int tinhTong(int n) {
int total =0;
do {
total =total *10 +n
%10; n=n/10; } while (n>0);
return total ;
}
4.Tổng số nguyên chia hết cho a không chia hết cho b:
int tinhTong (int a, int b, int n)
{
int i=1; int s=0;
if (a<n&&
b<n){
while (i<=n){
if (i%a==0 && i%b!=0)
s=s+i;
i=i+1;
}return s;
}else
return 0;
}
LEVEL 5
1. Chữ số lớn nhât:
lOMoARcPSD| 58583460
int timChusoLonnhat (int n)
{ int max =
0; while
(n!=0)
{ int x=n % 10;
n=n/10; if
(x>max)
{ max = x;
}
} return
max;
}
2. Đếm số NT có trong n
int demSonguyenTo (int n)
{ int demNT =
0; while (n>0)
{
int a = n%10;
int demKNt=0;
if (a<2){
demKNt ++;
} else
for (int i =2;i<a;i++)
{ if (a%i==0)
demKNt ++;
} if
(demKNt==0)
demNT++;
n=n/10;
} return
demNT;
}
3. Xét tăng dần trong n
bool xetTangdan (int n)
{ bool check; check
=true; int chuSocuoi
=n%10;
int x=n/10; while (x!=0){ int
soKecuoi =x%10; x=x/10;
if (soKecuoi >= chuSocuoi)
lOMoARcPSD| 58583460
{ check =false;
break;
}else
{ chuSocuoi =soKecuoi;
}
} return
check;
}
4. In ra n số đầu tiên trong Fibonnacci
int lietKeFibonacci (int n)
{
int x=0;
int y=1;
int z;
if(n==0||n==1){
z=n;
} else
for (int i=2;i<n;i++){
x=y;
y=z;
z=x+y;
} return
z;
}
void xuat (int kq, int n){
for (int i=0;i<n;i++) cout <<
lietKeFibonacci (i)<< " "; }
LEVEL 5
1.Liệt kê các số NT nhỏ hơn n:
bool laNt (int x)
{ int dem
=0;
for (int i=1; i<=x;i++)
if (x%i==0)
dem ++; if
(dem ==2)
return true;
else
return false;
}
void lietKesoNT (int n ){
for (int i=1;i <n;i++)
if (laNt (i) == true)
xuat (i);
}
lOMoARcPSD| 58583460
void xuat (int x) { cout <<x<<" ";
}
2. Đếm các số NT nhỏ hơn n:
int demSoHH (int n){
int dem =0;
for (int i = 1; i<n;i++){ if
( laHH(i)==true)
dem ++;
}return dem;
} bool laHH (int
x)
{
int i =1;
int s=0;
for (int i =1; i<x;i++)
if (x%i==0)
s=s+i;
if (s==x )
return true;
else
return false;
}
3.Tìm ước sô MAX của n
int soLelonNhat (int n)
{ int max
=0;
for (int i=1;i<=n;i++){
if (n%i==0 && i%2!=0)
if (i>max)
max =i;
}return max;
}
4.Tính a/b+c/d (xuất ra phân số tối giản) }
void congPhanso (int a, int b, int c, int d ,int &tu,int &mau){
int UCLN; int
x= a*d+c*b;
int y =b*d; if
(x==0){ mau
=0;
}else {
while (x!=y)
{
if (x >y)
x=x-y;
else
y=y-x;
}UCLN =x; tu =
(a*d+c*b)/UCLN;
mau = (b*d)/UCLN;
lOMoARcPSD| 58583460
}
void xuat (int tu ,int mau)
{ cout << tu << "/" << mau;
}
5.Tích 2 chữ số = 2 lần tổng của 2 chữ số đó (10->99)
void lietKe (int n){
for (int i=10; i<=n;i++){ if
(check (i)==true)
xuat (i);
}
} bool check (int
x){
int i=x/10; int j
=x%10; if
(i*j==2*(i+j)){
return true;
}return false;
}
void xuat (int x){
cout << x << " ";
}
6.Tổng giai thừa int
tongGiaithua (int n)
{
int s=0; int giaithua =1; for
(int i=1;i<=n;i++){ giaithua
= giaithua*i; s=s+giaithua;
}return s;
}
7. tổ hợp
int ToHop (int n, int k)
{
if (k==0 || k==n) return 1;
return (ToHop(n-1, k-1)+ ToHop (n-1,k )) ;
}
8.khoảng cách giữa hai ngày vừa nhập
int main (){
int
d1,m1,y1,d2,m2,y2;
nhap (d1,m1,y1); nhap
(d2,m2,y2);
int kq = kcGiuahaiNgay (d1,m1,y1,d2,m2,y2);
xuat (kq);
return 0;
}
int tinhSongay (int d, int m,int y){//tinh so ngay tu 1/1/1 den 1/1/y
lOMoARcPSD| 58583460
int kc = 0;
for (int i =1;i<y;i++)
if (namNhuan (i)==true){
kc=kc+366;
}else
kc= kc+365; kc= kc +
songayTudauNam (d,m,y); return
kc; } bool namNhuan (int y){
if ((y%4==0 && y%100 !=0) || y%400==0){
return true;
} else
return false;
} int songayTudauNam (int d, int m , int
y){
int soNgay =d; for (int i =1;i<m;i++) soNgay= soNgay +
soNgaytrongThang (i,y); return soNgay;
} int soNgaytrongThang (int m,int
y){
if (m==2){
if (namNhuan(y)==true){
return 29;
}else
return 28;
}else if (m==4||m==6||m==9||m==11){
return 30;
}else
return 31;
}
int kcGiuahaiNgay (int d1, int m1, int y1,int d2,int m2,int y2){
int kc1 = tinhSongay
(d1,m1,y1); int kc2 =
tinhSongay (d2,m2,y2); int
soNgay = abs(kc1-kc2); return
soNgay;
}
bool laNt (int n){
if(n<=1)
return false;
for (int i=2;i<=sqrt
(n);i++) if (n%i==0)
return false;
return true;
}
void thuaSonguyenTo (int n )
{
lOMoARcPSD| 58583460
9.Phân tích n thành thừa số nguyên tố xuat (i); n /= i;
}
}
LEVEL 6
1. Vị trí đầu tiên của X
2. Đảo ngược mảng
3. Liệt kê các số chẵn trong mảng thuộc [x,y] cho trc void
lietKeSoChanThuocDoanXY(int a[],int n,int x,int y){ for (int i=0;i<n;i++) if
(x<=a[i]&&a[i]<=y) if (a[i]%2==0) cout << a[i]<<" ";
}
LEVEL 7
1.Tìm số NT đầu tiên trong mảng
for(int i=2;i<=n;i++) while
(n%i == 0 && laNt(i) ) {
lOMoARcPSD| 58583460
2. Tìm số NT cuối cùng trong mảng
3.Tính TBC mảng
lOMoARcPSD| 58583460
4.Hãy liệt kê giá trị trong mảng 1 chiều có chữ số đầu tiên là số chẵn cout <<
a[i]<<" ";
}
5.dãy cấp số cộng
5. Số HH =số NT;
bool dauTienSoChan(int x){
bool kTra;
int y=0;
while (x>0){
y=x%10;
x=x/10;
} if (y%2==0)
return true;
return false;
}
void lietKeChuSoDauTienSoChan (int a[],int n){
for (int i=0;i<n;i++) if (dauTienSoChan
(a[i])==true)
lOMoARcPSD| 58583460
bool laNT (int x){
if (x<2)
return false;
for (int i=2;i<x;i++){
if (x%i==0){
return false;
}
}
return true;
} bool laHH (int
x){ if (x<0)
return false;
int sum =1; for (int
i=2;i*i<=x;i++)
if (x%i==0){
sum +=i;
}
if (sum ==x)
return true;
return false;
} int hoanHaoBangNguyenTo(int a[],int
n){ int demHH=0;
lOMoARcPSD| 58583460
int demNT=0;
for (int i=0;i<n;i++){
if (laNT(a[i])==true)
demNT++;
if (laHH(a[i])==true)
demHH++;
} if
(demNT!=demHH)
return 0;
return 1;
LEVEL 8
1.Tồn tại 2 giá trị 0 liên tiếp
int soKhongLienTiep (int a[],int n){
for (int i=0; i<n;i++)
if (a[i]==0 && a[i+1]==0){
return 1;
break;
}return 0;
}
2. giá trị đầu tiên mang tính chất số gánh
int giaTriDauTienSoGanh (int a[],int n){
int x; for (int
i=0;i<n;i++){
for (int j=n-1;j<n;j++){
if(a[i]==a[j])
x=a[i];
}
}return x;
}
3.tìm giá trị đầu tiên trong mảng có chữ số đầu tiên lẻ
int giaTriDauTien (int a[],int n){ int giaTri;
lOMoARcPSD| 58583460
for (int i=0;i<n;i++){
if(a[i]%10 %2!=0){
giaTri =a[i];
break;
}giaTri =0;
}return giaTri;
4. Đổi chỗ max ->min trong mảng
}
5.Max âm lớn nhất
int amLonNhat(int a[],int n){
int maxAm;
for (int i=0;i<n;i++){
if (a[i]<0)
maxAm=a[i];
break;
}
if (maxAm !=0)
for (int i=0;i<n;i++) if
(a[i]>maxAm &&a[i]<0)
lOMoARcPSD| 58583460
maxAm=a[i]; return
maxAm;
}
6.NT lớn nhất:
bool laNT (int x){ if
(x<2) return false;
for (int i =2;i<x;i++)
if (x%i==0) return
false;
return true;
}
int nguyenToLonNhat (int a[],int n){
int max;
max =0;
for (int i=0;i<n;i++){ if (laNT((a[i]))==true
&& a[i]>max){ max = a[i];
}
}
return max;
}
7.Tìm UCLN trong mảng
int ktraUCLN (int x, int y){
if (x==0 || y==0){
return x +y;
}while (x!=y){ if
(x>y){ x-=y;
}else { y-
=x;
}
} return x;
}
int uocChungLonNhat (int a[],int n){
int x=a[0];
for (int i=0;i<n;i++){ x=
ktraUCLN (x,a[i]);
} return x;
}
lOMoARcPSD| 58583460
8.Tìm đoạn [a,b]
9.Minh họa thoa tác cập nhat-xóa-chèn
void timDoan (float a[], int n,int &x, int &y){
float min= timMin(a,n); float max=
timMax(a,n); x = (int) min; // min lam
tron xuog if (min<0) //-3.4->-4 if(min-x
!=0) x--; // max lam tron if (max>0){
int phannguyen =(int) max; float phanle
= max-phannguyen; if (phanle>0){
y=phannguyen +1;
lOMoARcPSD| 58583460
10.chèn x sao cho đảm bảo tăng dần
11.Trộn xen kẽ 2 mảng

Preview text:

lOMoAR cPSD| 58583460 CODE MẪU LEVEL 1 1.Ktra năm nhuận: int xetnam (int n) { if (n>0)
{ if (n%4==0 && n%100 !=0 || n%400==0)
return 1;//nhuan else return 2;//khong nhuan } else return 0; } 2.độ dài tam giác:
int xetTamGiac(float a, float b, float c)
{ if (a>0 && b>0 && c>0 && a+b>c && b+c>a && a+c>b) { return 1; } else return 0;}
3.đổi chữ thương thành hoa. Ngược lại char kiTu (char x) {
if ('A' <= x && x <= 'Z') return x +(32); else return x-(32); }
4.làm tròn(phần lẻ >=0.5 làm tròn lên)
lOMoAR cPSD| 58583460
int Baitoanlamtron(double a) { float temp; temp = a- (int)a;
if (temp < 0.5 && temp !=0.5) { return (int)a; } else return a+1; }
4.xuất ra số nguyên lớn nhất nhưng nhỏ hơn a (a=3.2->3, a=5->4)
int tinhToan (double a) { float temp; temp = a - (int)a; if (temp!=0) { return (int)a; } else return a-1; } LEVEL 2
1.Xác định là tam giác gì (thg,cân,vuông,đều,vuông cân)
int xetTamGiac(float a, float b, float c)
{ if (a>0 && b>0 && c>0 && a+b>c && b+c>a && a+c>b) { if (a==b && b==c )
return 1;// "tam giac deu" lOMoAR cPSD| 58583460
if (a==b || a==c || b==c)
if (a*a+b*b == c*c || a*a+c*c == b*b || b*b+c*c == a*a)
return 2;// "tam giac vuong can" else
return 4;// "tam giac can " else
if (a*a+b*b==c*c||a*a+c*c==b*b||b*b+c*c==a*a)
return 3;// "tam giac vuong" else
return 5; // "tam giac thuong" } else
return 0;// "khong phai la tam giac" 2.giải pt bậc 2
int giaiPt (float a, float b, float c, float &x1, float & x2) {
if (a == 0) if (b==0) if (c==0)
return 4;// phuong trinh co vo so nghiem
else return 0;// "phuong trinh vo nghiem" else {
x1= -c/b; return 1;// "phuong trinh co 1 nghiem } else {
float denta = b*b-4*a*c; if (denta <0) return 0; else lOMoAR cPSD| 58583460 if (denta =0)
{ x1=-b/2*a; return 3;// phuong trinh co nghiem kep
} else x1= (-b+ sqrt(denta))/(2*a); x2=(-b-
sqrt(denta))/(2*a); return 2;// phuong trinh co 2 nghiem pham biet } if (a==0) if (b==0) if(c==0) return 4; else return 0; else { x1=-c/b; return 1; } else { float denta =b*b-4*a*c; if (denta<0) return 0; else if (denta =0){ x1=-b/2*a; return 3; }else
x1=(-b+sqrt (denta))/(2*a); x2=(-b-sqrt
(denta))/(2*a); return 2; lOMoAR cPSD| 58583460 } } 3. Sau một giây:
void xuLy(int& h, int& m, int& s) } s += 1; if (s == 60) { s = 0; m += 1; if (m == 60) { m = 0; h += 1; if (h == 24) { h = 0; } } } }
void xuat(int h, int m, int s)
{ printf("%d %d %d", h, m, s); } LEVEL 3 1.Tổng ước số int tinhTong (int n) { int i= 1; int s=0; while (i<=n) { if (n%i==0) s=s+i; i=i+1; } return s; } 2.Tổng các chữ số lOMoAR cPSD| 58583460 int tinhTong(int n) { int total=0; do{ total=total +n%10; n=n/10; }while (n>10); return total; }
3.Xuất ra số ngược lại: int tinhTong(int n) { int total =0; do { total =total *10 +n
%10; n=n/10; } while (n>0); return total ; }
4.Tổng số nguyên chia hết cho a không chia hết cho b:
int tinhTong (int a, int b, int n) { int i=1; int s=0; if (ab while (i<=n){
if (i%a==0 && i%b!=0) s=s+i; i=i+1; }return s; }else return 0; } LEVEL 5
1. Chữ số lớn nhât: lOMoAR cPSD| 58583460
int timChusoLonnhat (int n) { int max = 0; while (n!=0) { int x=n % 10; n=n/10; if (x>max) { max = x; } } return max; }
2. Đếm số NT có trong n int demSonguyenTo (int n) { int demNT = 0; while (n>0) { int a = n%10; int demKNt=0; if (a<2){ demKNt ++; } else for (int i =2;i { if (a%i==0) demKNt ++; } if (demKNt==0) demNT++; n=n/10; } return demNT; } bool xetTangdan (int n) { bool check; check =true; int chuSocuoi =n%10;
int x=n/10; while (x!=0){ int
soKecuoi =x%10; x=x/10;
if (soKecuoi >= chuSocuoi)
3. Xét tăng dần trong n lOMoAR cPSD| 58583460 { check =false; break; }else { chuSocuoi =soKecuoi; } } return check; }
4. In ra n số đầu tiên trong Fibonnacci
int lietKeFibonacci (int n) { int x=0; int y=1; int z; if(n==0||n==1){ z=n; } else for (int i=2;i x=y; y=z; z=x+y; } return z; }
void xuat (int kq, int n){
for (int i=0;ilietKeFibonacci (i)<< " "; } LEVEL 5
1.Liệt kê các số NT nhỏ hơn n: bool laNt (int x) { int dem =0;
for (int i=1; i<=x;i++) if (x%i==0) dem ++; if (dem ==2) return true; else return false; }
void lietKesoNT (int n ){
for (int i=1;i if (laNt (i) == true) xuat (i); } lOMoAR cPSD| 58583460 void xuat (int x) { cout < }
2. Đếm các số NT nhỏ hơn n:
int demSoHH (int n){ int dem =0;
for (int i = 1; i( laHH(i)==true) dem ++; }return dem; } bool laHH (int x) { int i =1; int s=0;
for (int i =1; iif (x%i==0) s=s+i; if (s==x ) return true; else return false; } 3.Tìm ước sô MAX của n
int soLelonNhat (int n) { int max =0;
for (int i=1;i<=n;i++){
if (n%i==0 && i%2!=0) if (i>max) max =i; }return max; }
void congPhanso (int a, int b, int c, int d ,int &tu,int &mau){ int UCLN; int x= a*d+c*b; int y =b*d; if (x==0){ mau =0; }else { while (x!=y) { if (x >y) x=x-y; else y=y-x; }UCLN =x; tu = (a*d+c*b)/UCLN; mau = (b*d)/UCLN;
4.Tính a/b+c/d (xuất ra phân số tối giản) } lOMoAR cPSD| 58583460 }
void xuat (int tu ,int mau)
{ cout << tu << "/" << mau; }
5.Tích 2 chữ số = 2 lần tổng của 2 chữ số đó (10->99)
void lietKe (int n){
for (int i=10; i<=n;i++){ if (check (i)==true) xuat (i); } } bool check (int x){ int i=x/10; int j =x%10; if (i*j==2*(i+j)){ return true; }return false; } void xuat (int x){
cout << x << " "; } 6.Tổng giai thừa int tongGiaithua (int n) { int s=0; int giaithua =1; for
(int i=1;i<=n;i++){ giaithua
= giaithua*i; s=s+giaithua; }return s; } 7. tổ hợp
int ToHop (int n, int k) {
if (k==0 || k==n) return 1;
return (ToHop(n-1, k-1)+ ToHop (n-1,k )) ; }
8.khoảng cách giữa hai ngày vừa nhập
int main (){ int d1,m1,y1,d2,m2,y2; nhap (d1,m1,y1); nhap (d2,m2,y2);
int kq = kcGiuahaiNgay (d1,m1,y1,d2,m2,y2); xuat (kq); return 0; }
int tinhSongay (int d, int m,int y){//tinh so ngay tu 1/1/1 den 1/1/y lOMoAR cPSD| 58583460 int kc = 0; for (int i =1;i if (namNhuan (i)==true){ kc=kc+366; }else kc= kc+365; kc= kc +
songayTudauNam (d,m,y); return
kc; } bool namNhuan (int y){
if ((y%4==0 && y%100 !=0) || y%400==0){ return true; } else return false;
} int songayTudauNam (int d, int m , int y){
int soNgay =d; for (int i =1;isoNgaytrongThang (i,y); return soNgay;
} int soNgaytrongThang (int m,int y){ if (m==2){ if (namNhuan(y)==true){ return 29; }else return 28;
}else if (m==4||m==6||m==9||m==11){ return 30; }else return 31; }
int kcGiuahaiNgay (int d1, int m1, int y1,int d2,int m2,int y2){ int kc1 = tinhSongay (d1,m1,y1); int kc2 = tinhSongay (d2,m2,y2); int soNgay = abs(kc1-kc2); return soNgay; } bool laNt (int n){ if(n<=1) return false; for (int i=2;i<=sqrt (n);i++) if (n%i==0) return false; return true; }
void thuaSonguyenTo (int n ) { lOMoAR cPSD| 58583460
for(int i=2;i<=n;i++) while
(n%i == 0 && laNt(i) ) {
9.Phân tích n thành thừa số nguyên tố xuat (i); n /= i; } } LEVEL 6
1. Vị trí đầu tiên của X
int viTriCuaX(int x,int n,int a[]){ int viTri;
for (int i=0;iif (a[i]==x){ viTri=i; break; }viTri =-1; }return viTri; }
2. Đảo ngược mảng
void daoNguoc (int a[], int n){ int x=0; int y=n-1; while (x=a[x]; a[x]=a[y]; a[y]=tam; x++; y--; } }
void xuat (int a[], int n){ for (int i=0;i}
3. Liệt kê các số chẵn trong mảng thuộc [x,y] cho trc void
lietKeSoChanThuocDoanXY(int a[],int n,int x,int y){ for (int i=0;i(x<=a[i]&&a[i]<=y) if (a[i]%2==0) cout << a[i]<<" "; } LEVEL 7
1.Tìm số NT đầu tiên trong mảng lOMoAR cPSD| 58583460 int laNT (int x){ if (x<2) return 0; for (int i=2;i if (x%i==0) return 0; return 1; }
int soNguyenToDauTien (int a[],int n){ for (int i=0;i if (laNT(a[i]==1)) return a[i]; return -1; }
2. Tìm số NT cuối cùng trong mảng int laNT (int x){ if (x<2) return 0; for (int i=2;i if (x%i==0) return 0; return 1; }
int soNguyenToCuoiCung (int a[],int n){
for (int i=n-1;i>=0;i--) if
(laNT(a[i]==1)) return a[i]; return -1; } 3.Tính TBC mảng
float trungBinhCongNT (int a[],int n){ int tong =0; int dem =0; float trungBinhCong; for
(int i=0;i(laNT(a[i])==1){ tong =tong +a[i]; dem++; } } if (dem ==0){ trungBinhCong=0;
}else trungBinhCong=(float )tong/dem; return trungBinhCong; } lOMoAR cPSD| 58583460
bool dauTienSoChan(int x){ bool kTra; int y=0; while (x>0){ y=x%10; x=x/10; } if (y%2==0) return true; return false; }
void lietKeChuSoDauTienSoChan (int a[],int n){
for (int i=0;i) if (dauTienSoChan (a[i])==true)
4.Hãy liệt kê giá trị trong mảng 1 chiều có chữ số đầu tiên là số chẵn cout << a[i]<<" "; }
5.dãy cấp số cộng
int capSoCong (int a[],int n){ int congSai=a[1]-a[0]; for
(int i=2;i=a[i]-a[i-1]; if (hieu !=congSai) return 0; }return 1; } 5. Số HH =số NT; lOMoAR cPSD| 58583460 bool laNT (int x){ if (x<2) return false; for (int i=2;i if (x%i==0){ return false; } } return true; } bool laHH (int x){ if (x<0) return false; int sum =1; for (int i=2;i*i<=x;i++) if (x%i==0){ sum +=i; } if (sum ==x) return true; return false;
} int hoanHaoBangNguyenTo(int a[],int n){ int demHH=0; lOMoAR cPSD| 58583460 int demNT=0; for (int i=0;i if (laNT(a[i])==true) demNT++; if (laHH(a[i])==true) demHH++; } if (demNT!=demHH) return 0; return 1; LEVEL 8
1.Tồn tại 2 giá trị 0 liên tiếp
int soKhongLienTiep (int a[],int n){ for (int i=0; i
if (a[i]==0 && a[i+1]==0){ return 1; break; }return 0; }
2. giá trị đầu tiên mang tính chất số gánh
int giaTriDauTienSoGanh (int a[],int n){ int x; for (int i=0;i for (int j=n-1;j if(a[i]==a[j]) x=a[i]; } }return x; }
3.tìm giá trị đầu tiên trong mảng có chữ số đầu tiên lẻ

int giaTriDauTien (int a[],int n){ int giaTri; lOMoAR cPSD| 58583460 for (int i=0;i if(a[i]%10 %2!=0){ giaTri =a[i]; break; }giaTri =0; }return giaTri;
4. Đổi chỗ max ->min trong mảng
int timMin (int a[], int n){ int viTri=0; for (int
i=1;i(a[viTri]>a[i]) viTri=i; return viTri; }
int timMax(int a[], int n){ int viTri=0; for (int i=1;i(a[viTri] viTri=i; return viTri; }
void hoanVi (int &x, int&y) { int tam=x; x=y; y=tam; }
void hoanDoiMaxMin (int a[],int n){ int min =timMin (a, n); int max =timMax (a, n); hoanVi(a[min],a[max]); }
void xuat (int a[], int n){ for (int i=0;ia[i]<< " "; } 5.Max âm lớn nhất int amLonNhat(int a[],int n){ int maxAm;
for (int i=0;iif (a[i]<0) maxAm=a[i]; break; } if (maxAm !=0)
for (int i=0;i(a[i]>maxAm &&a[i]<0) lOMoAR cPSD| 58583460 maxAm=a[i]; return maxAm; } 6.NT lớn nhất: bool laNT (int x){ if (x<2) return false; for (int i =2;i if (x%i==0) return false; return true; }
int nguyenToLonNhat (int a[],int n){ int max; max =0;
for (int i=0;i&& a[i]>max){ max = a[i]; } } return max; }
7.Tìm UCLN trong mảng
int ktraUCLN (int x, int y){ if (x==0 || y==0){ return x +y; }while (x!=y){ if (x>y){ x-=y; }else { y- =x; } } return x; }
int uocChungLonNhat (int a[],int n){ int x=a[0];
for (int i=0;iktraUCLN (x,a[i]); } return x; } lOMoAR cPSD| 58583460
void timDoan (float a[], int n,int &x, int &y){
float min= timMin(a,n); float max=
timMax(a,n); x = (int) min; // min lam
tron xuog if (min<0) //-3.4->-4 if(min-x
!=0) x--; // max lam tron if (max>0){
int phannguyen =(int) max; float phanle
= max-phannguyen; if (phanle>0){ y=phannguyen +1; 8.Tìm đoạn [a,b] }else y= phannguyen; }else y=int (max); }
float timMin (float a[], int n){ float min =a[0]; for (int i=1;i(a[i] return min; }
float timMax (float a[], int n){ float max=a[0]; for (int
i=1;i(a[i]>max) max=a[i]; return max; }
9.Minh họa thoa tác cập nhat-xóa-chèn lOMoAR cPSD| 58583460 int main (){ int n; int a[200]; int k;//vitri K int x;//phan tu X nhap (a, n, k,x); xoaPhanTu (a,n,k); xuat (a,n); chenPhanTu (a,n,k,x); xuat (a,n); return 0; }
void nhap (int a[], int &n, int &k, int &x){ cin >>n; for (int i=0;i> a[i]; cin >> k; cin >> x; }
void xoaPhanTu (int a[],int &n, int k){ for (int i=k;ia[i]=a[i+1]; n--; }
void chenPhanTu (int a[],int &n, int k,int x){
for (int i=n-1;i>=k;i--) a[i+1]=a[i]; a[k]=x; n++; }
void xuat (int a[],int n){ for (int i=0;i
cout << a[i]<< " "; }
10.chèn x sao cho đảm bảo tăng dần
void chenX (int a[],int &n,int x){ for (int i=0;ix){ for (int j=n;j>i;j--){ a[j]=a[j-1]; }a[i]=x; break; }else a[n]=x; } }
11.Trộn xen kẽ 2 mảng