Một số bài tập Upcoder3

6 7 0
Một số bài tập Upcoder3

Đang tải... (xem toàn văn)

Thông tin tài liệu

Yêu cầu viết chương trình nhập vào 2 phân số, yêu cầu xuất phân số tổng của 2 phân số đó (phân số tổng được rút gọn, sau đó xuất ra màn hình).. Nếu input có phân số nào có mẫu bằng 0 th[r]

(1)

1 FCT_Swap

2 số nguyên a b, số cách khoảng trắng số nguyên a b hoán đổi giá trị, số cách khoảng trắng

2 3

#include<iostream> using namespace std; void hoanvi(int &a, int &b); int main(){

int a,b; cin>>a>>b; hoanvi(a,b); cout<<a<<" "<<b; return 0;

}

void hoanvi(int &a, int&b){ int c=a;

a=b; b=c; }

2 MANG3

Dòng 1: Nhập vào N số lượng phần tử mảng Dòng 2: N số nguyên (mỗi số cách khoảng trắng)

Yêu cầu xuất tổng số phương hình

4 1

5 #include<iostream>

#include<cmath> #include<stdio.h> using namespace std; bool isSCP(int n); int main(){ int n, a[1000]; cin>>n;

for(int i=0;i<n;i++){ cin>>a[i];

} int s=0;

for(int i=0;i<n;i++){ if(isSCP(a[i]) == true){ s += a[i];

} } cout<<s; return 0; }

bool isSCP(int n){ int d=sqrt(n);

if(d*d==n) return true; else return false; }

3 MANG4

- Dòng 1: Nhập vào N số lượng phần tử mảng - Dòng 2: N số nguyên (mỗi số cách khoảng trắng)

Yêu cầu xuất tổng số nguyên tố hình

3 1

(2)

#include<iostream> #include<cmath> using namespace std; bool isSNT(int n); int main(){ int n, a[1000]; cin>>n;

for(int i=0;i<n;i++){ cin>>a[i];

} int s=0;

for(int i=0;i<n;i++){ if(isSNT(a[i]) == true){ s += a[i];

} } cout<<s; return 0; }

bool isSNT(int n){ int dem=0;

for( int i=1;i<=n;i++){ if(n%i ==0) dem++; }

if(dem ==2) return true; else return false; }

4 UCLN2:Cho hai số ngun khơng âm a b, tìm ước số chung lớn a b Gồm số a b cách khoảng trắng (0 ≤ a,

b ≤ 1018)

Số nguyên dương ước số chung lớn a b

6 3

#include<iostream> using namespace std; long UCLN(long a,long b); int main(){

long a,b; cin>>a>>b;

cout<<UCLN(a,b)<<endl; return 0;

}

long UCLN(long a, long b){ while (b>0){

long r=a%b; a=b;

b=r; } return a; }

5 XUATSNT

Nhập vào số nguyên n, yêu cầu xuất tất số nguyên tố từ đến n (mỗi số cách khoảng trắng) - khơng có số nào, xuất -1

(3)

#include<iostream> using namespace std; bool isSNT(int n); int main(){ int n; cin>>n; if(n<2){ cout<<-1; }

else {

for(int i=1;i<=n; i++){ if(isSNT(i)==true){ cout<<i<<" "; }

} } return 0; }

bool isSNT(int n){ int dem=0;

for(int i=1;i<=n;i++){ if(n%i==0) dem++; }

if(dem==2) return true; else return false; }

6 DAONGUOC1

Nhập vào dãy số, tìm số có số đảo ngược lớn

123 12 1 341

123

#include<iostream> using namespace std; int soDaoNguoc(int n); int main(){

int x, a[100], n=0;

while (cin>>x) a[n++]=x;

int kq=0;

for(int i=0;i<n;i++){

//Tìm số đảo phần tử //lưu lại số đảo ngược lớn x=soDaoNguoc(a[i]);

if(x>kq) kq=x; }

cout<<soDaoNguoc(kq); return 0;

}

int soDaoNguoc(int n){ int kq=0;

while (n>0){ int r=n%10; kq=kq*10+r; n/=10; }

return kq; }

7 DAYSNT

Cho dãy số nguyên ,Hãy tìm số nguyên tố lớn nhỏ K dòng 1: số nguyên K

dòng : dãy số nguyên

(4)

9

5 11 10 13

7

#include<iostream> using namespace std; bool isSNT(int n); int main(){

int k,x, a[100], n=0; cin>>k;

while (cin>>x) a[n++]=x;

int kq =-1;

for(int i=0;i<n;i++){ x=a[i];//x số xét if(isSNT(x)==true && x<=k){ //x SNT ko lớn k if(x>kq) kq =x;

} }

cout<<kq; return 0; }

bool isSNT(int n){ int dem=0;

for(int i=1;i<=n;i++){ if(n%i==0) dem++; }

if(dem==2) return true; else return false; }

8 PhanSo

xây dựng cấu trúc Phân Số (gồm tử mẫu số nguyên) với yêu cầu, xây dựng hàm sau:

- Nhập, xuất phân số - Hàm rút gọn

Viết chương trình nhập vào N phân số, yêu cầu tìm xuất phân số nhỏ (sau tối giản) - Dòng 1: số N

- N dòng tiếp theo, dòng gồm số nguyên tử mẫu phân số

Phân số nhỏ (sau tối giản)

2 2

1/2 #include <iostream>

using namespace std; struct PhanSo{ int tu, mau; };

void nhapPS(PhanSo &p); void xuatPS(PhanSo p); void rutGon(PhanSo &p); int UCLN(int a, int b); int main(){

int n;

PhanSo a[100]; cin >> n;

for(int i = 0; i < n; i++){ nhapPS(a[i]);

void nhapPS(PhanSo &p){ cin >> p.tu >> p.mau; }

void xuatPS(PhanSo p){

cout << p.tu << "/" << p.mau; }

void rutGon(PhanSo &p){ int x = UCLN(p.tu, p.mau); p.tu /= x;

p.mau /= x; }

int UCLN(int a, int b){ while (b > 0){ int r = a % b; a = b;

b = r; }

(5)

}

PhanSo kq; kq.tu = a[0].tu; kq.mau = a[0].mau; for(int i = 1; i < n; i++){

if (kq.tu * a[i].mau > a[i].tu * kq.mau){ kq.tu = a[i].tu;

kq.mau = a[i].mau; }

}

rutGon(kq); xuatPS(kq); return 0; }

}

9 PhanSo1

Một phân số gồm tử mẫu (tử mẫu số nguyên lớn bé 100)

Yêu cầu viết chương trình nhập vào phân số, yêu cầu xuất phân số tổng phân số (phân số tổng rút gọn, sau xuất hình)

Nếu input có phân số có mẫu xuất kết -1

Dữ liệu đầu vào: gồm dòng, dòng gồm số nguyên cách tối thiểu khoảng trắng

Dữ liệu đầu ra: gồm dòng chứa phân số tổng (sau rút gọn) phân số ban đầu, xuất theo dạng: tửsố/mẫusố

1 1

5/6 1

1

-1 #include<iostream>

using namespace std; struct phanso{ int tu, mau; };

int UCLN(int a,int b); int main(){

phanso p1,p2;

cin>>p1.tu>>p1.mau; cin>>p2.tu>>p2.mau;

if(p1.mau==0||p2.mau==0){ cout<<-1;

} else {

phanso tong;

tong.tu=p1.tu*p2.mau+p2.tu*p1.mau; tong.mau=p1.mau*p2.mau;

//chưa rút gọn

int x=UCLN(tong.tu,tong.mau); tong.tu/=x;

tong.mau/=x;

cout<<tong.tu<<"/"<<tong.mau; }

return 0; }

int UCLN(int a,int b){ while (b>0){ int r=a%b; a=b; b=r; }

return a; }

10 DAYSNT

(6)

dòng 1: số nguyên K

dòng : dãy số nguyên dòng : số nguyên tố lớn mà khơng lớn K, khơng có in -1 9

5 11 10 13

7 #include<iostream>

using namespace std; bool isSNT(int n); int main(){

int k,x, a[100], n=0; cin>>k;

while (cin>>x) a[n++]=x;

int kq =-1;

for(int i=0;i<n;i++){ x=a[i];//x số xét if(isSNT(x)==true && x<=k){ //x SNT ko lớn k if(x>kq) kq =x;

} }

cout<<kq; return 0; }

bool isSNT(int n){ int dem=0;

for(int i=1;i<=n;i++){ if(n%i==0) dem++; }

Ngày đăng: 15/12/2020, 14:50

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan