1. Trang chủ
  2. » Nghệ sĩ và thiết kế

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

6 9 0

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

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 6
Dung lượng 158,98 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

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]

Trang 1

1 FCT_Swap

2 số nguyên a và b, mỗi số cách nhau 1 khoảng trắng 2 số nguyên a và b đã hoán đổi giá trị, mỗi số cách nhau 1

khoảng trắng

#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 là số lượng phần tử của mảng

Dòng 2: N số nguyên (mỗi số cách 1 khoảng trắng)

Yêu cầu xuất tổng các số chính phương ra màn hình

4

1 2 3 4

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 là số lượng phần tử của mảng

- Dòng 2: N số nguyên (mỗi số cách 1 khoảng trắng)

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

3

1 2 3

5

Trang 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ố nguyên không âm a và b, hãy tìm ước số chung lớn nhất của a và b

Gồm 2 số a và b cách nhau một khoảng trắng (0 ≤ a,

b ≤ 1018)

Số nguyên dương duy nhất là ước số chung lớn nhất của a và b

#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 1 số nguyên n, yêu cầu xuất tất cả số nguyên tố từ 1 đến n (mỗi số cách 1 khoảng trắng) - nếu không có số nào, xuất -1

Trang 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 1 dãy số, tìm số có số đảo ngược của nó là lớn nhất

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 của từng phần tử

//lưu lại số đảo ngược lớn nhất

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 1 dãy các số nguyên ,Hãy tìm số nguyên tố lớn nhất nhỏ hơn hoặc bằng K

dòng 1: số nguyên K

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

dòng 2 : số nguyên tố lớn nhất mà không lớn hơn K, nếu không có in ra -1

Trang 4

9

5 4 7 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 là số đang xét

if(isSNT(x)==true && x<=k){

//x là SNT và ko lớn hơ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 1 cấu trúc Phân Số (gồm tử và mẫu là số nguyên) với yêu cầu, xây dựng các 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ỏ nhất (sau khi tối giản)

- Dòng 1: số N

- N dòng tiếp theo, mỗi dòng gồm 2 số nguyên là

tử và mẫu của 1 phân số

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

2

1 2

2 4

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;

} return a;

Trang 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ử và mẫu (tử và mẫu là 2 số nguyên lớn hơn bằng 0 và bé hơn 100)

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ì xuất kết quả ra -1

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

Dữ liệu đầu ra: gồm 1 dòng duy nhất chứa phân số tổng (sau khi rút gọn) của 2 phân số ban đầu, xuất theo

dạng: tửsố/mẫusố

1 2

1 3

5/6

1 2

1 0

-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 được 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

Cho 1 dãy các số nguyên ,Hãy tìm số nguyên tố lớn nhất nhỏ hơn hoặc bằng K

Trang 6

dòng 1: số nguyên K

dòng 2 : dãy số nguyên dòng 2 : số nguyên tố lớn nhất mà không lớn hơn K, nếu không có in ra -1

9

5 4 7 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 là số đang xét

if(isSNT(x)==true && x<=k){

//x là SNT và ko lớn hơ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;

}

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

TỪ KHÓA LIÊN QUAN

w