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

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

10 196 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 10
Dung lượng 350,3 KB

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

Nội dung

Hồ Chí Minh cần in một số tài liệu để phục vụ giảng dạy và nghiên cứu, chúng có thể là luận văn/báo cáo nghiên cứu khoa học hoặc là giáo trình giảng dạy.. Biết rằng mỗi loại tài liệu [r]

Trang 1

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

I Nhập & xuất:

1 Bài 1: Lấy chính xác 1 chữ số thập phân

Input: Nhập vào 3 số nguyên theo định dạng sau:

• Dòng 1: 2 số nguyên a và b

• Dòng 2: 2 số nguyên c và d

• Dòng 3: 2 số nguyên e và f

Output:

• Xuất ra 1 số duy nhất là kết quả của biểu thức: (a+b+c)/(d+e+f)

#include<iostream>

#include<stdio.h>

using namespace std;

int main(){

int a,b,c,d,e,f;

cin>>a>>b;

cin>>c>>d;

cin>>e>>f;

printf("%.1f",(float)(a+b+c)/(d+e+f));

return 0;

}

Sử dụng lệnh printf của C:

ví dụ muốn xuất 2 chữ số thập phân của biến x, với x là biến

số thực thì sử dụng như sau: #include<stdio.h>

• printf("%.2f",x);

2 Bài 2: Bảng mã ASCII

Input:

• Dòng 1: chứa 1 ký tự

• Dòng 2: chưa 1 ký tự

Output:

• Xuất tổng nguyên của 2 ký tự trong input ra màn hình (dựa vào hệ 10 của ký tự trong bảng mã ascii)

#include<iostream>

using namespace std;

int main(){

char a,b;

cin>>a;

cin>>b;

cout<<(int)a+(int)b;

return 0;

}

3 giá trị tuyệt đối của số nguyên

Input:

• Nhập vào 1 số nguyên

Output:

• Xuất ra giá trị tuyệt đối của số nguyên đó

#include<iostream>

#include<cmath>

using namespace std;

int main(){

int n;

cin>>n;

cout << abs(n);

return 0;

Trang 2

}

1 số chính phương:

Nhập vào 1 số

Kiểm tra số đó có phải là số chính phương không?

Xuất: yes, nếu đó là số chính phương, ngược lại xuất no

#include<iostream>

#include<cmath>

using namespace std;

int main(){

int x,i;

cin>>x;

i=sqrt(x);

if(i*i==x) cout<<"yes";

else cout<<"no";

return 0;

}

2 số nguyên tố

Nhập vào 1 số

Kiểm tra số đó có phải là số nguyên tố không?

Xuất: true, nếu đó là số nguyên tố, ngược lại xuất false

#include<iostream>

using namespace std;

int main(){

int n;

cin>>n;

int dem=0;

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

if(n%i==0) dem++;

}

if(dem==2) cout<<"true";

else cout<<"false";

return 0;

}

3 số hoàn hảo

Số hoàn hảo là số mà tổng ước số của nó (không tính nó) bằng chính nó

yêu cầu: nhập vào 1 số, xuất là Yes nếu nó là số hoàn hảo, ngược lại xuất No

#include <iostream>

using namespace std;

int main() {

int n;

cin >> n;

int tonguoc=0;

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

if(n%i==0) tonguoc +=i;

}

if(tonguoc ==n) cout<<"Yes";

Trang 3

else cout<<"No";

return 0;

}

4 nhập vào 2 số nguyên và 1 phép toán Yêu cầu thực hiện phép toán (là 1 trong 4 phép toán: +,-,*,%)

Input:

• Dòng 1: nhập vào 2 số nguyên A, B

• Dòng 2: Nhập vào 1 phép toán

Output:

• Biểu thức thực hiện phép toán

#include<iostream>

using namespace std;

int main(){

int a,b;

char c

cin>>a>>b;

cin>>c;

if(c=='+') cout<<a<<c<<b<<"="<<a+b;

else if(c=='-') cout<<a<<c<<b<<"="<<a-b;

else if(c=='*') cout<<a<<c<<b<<"="<<a*b;

else if(c=='%') cout<<a<<c<<b<<"="<<a%b;

return 0;

}

5 Chẳn lẻ

#include<iostream>

using namespace std;

int main(){

int x;

cin>>x;

if(x%2 == 0){

cout<<"chan";

}

else cout<<"le";

return 0;

}

6 Tìm sô lớn nhât và sô nhỏ nhất trong 3 sô đó

#include<iostream>

using namespace std;

int main(){

int a,b,c;

cin>>a>>b>>c;

int max=a;

if (max<b) max=b;

if (max<c) max=c;

int min=a;

if(min>b) min=b;

if(min>c) min=c;

cout<<max<<" "<<min;

Trang 4

return 0;

}

7 Phương trình bậc nhất:

Giải phương trình Ax + B = 0 Với A, B là hai hệ sô kiểu số nguyên được nhập vào từ bàn phím

- Nếu phương trình vô nghiệm xuất kết quả: VN

- Nếu phương trình VSN xuất ra : VSN

- Nếu phương có nghiệm, xuất ra nghiệm (Lưu ý: kết quả xuất ra là số thực (lấy 2 chữ số thập phân)

#include<iostream>

#include<stdio.h>

using namespace std;

int main(){

int a,b;

cin>>a>>b;

if(a == 0){

if(b==0) cout<<"VSN";

else cout<<"VN";

}

else {

printf("%.2f",(float)-b/a);

}

return 0;

}

8 PT bậc 2:

Input:

- Gồm 3 dòng, mỗi dòng là 1 số nguyên, tương ứng với 3 hệ số a,b,c

Output:

- Nếu phương trình có nghiệm, xuất nghiệm lấy 4 chữ số thập (nếu có 2 nghiệm xuất mỗi nghiệm ở một hàng riêng biệt)

- Nếu phương trình vô nghiệm, xuất VN

- Nếu phương trình vô số nghiệm, xuát VSN

Lưu ý: nếu a=0, thì phương trình trở thành phương trình bậc 1

#include<iostream>

#include<stdio.h>

#include<cmath>

using namespace std;

int main(){

int a,b,c;

cin>>a;

cin>>b;

cin>>c;

if(a==0){

if(b==0){

if(c==0) cout<<"VSN";

else cout<<"VN";

}

else {

printf("%.4f",(float)-c/b);

}

}

else{

int d=b*b-4*a*c;

Trang 5

if (d<0) cout<<"VN";

else if (d==0){

float x=(float)-b/(2*a);

printf("%.4f",x);

}

else{

float x1 =(float)(-b+sqrt(d))/(2*a);

float x2 =(float)(-b-sqrt(d))/(2*a);

printf("%.4f\n%.4f",x1,x2);

}

}

return 0;

}

9 số tờ giấy A4 tối thiểu cần dùng

Khoa Công nghệ Thông tin - trường Đại học Sư phạm TP Hồ Chí Minh cần in một số tài liệu để phục vụ giảng dạy và nghiên cứu, chúng có thể là luận văn/báo cáo nghiên cứu khoa học hoặc là giáo trình giảng dạy Biết rằng mỗi loại tài liệu sẽ có những quy định khác nhau:

• Nếu là luận văn hoặc báo cáo khoa học thì phải in 1 mặt

• Nếu là giáo trình, thì có thể in trên cả 2 mặt để tiết kiệm chi phí

• Tất cả các loại tài liệu đều phải in trên giấy A4

Yêu cầu hãy tính số lượng giấy tối thiểu cần dùng để in hết tài liệu đó

Input:

• Gồm 3 số nguyên không âm: T, P và C Trong đó T là loại tài liệu (1 nếu là luận văn/báo cáo khoa học, 2 nếu là giáo trình), P là số trang của tài liệu và C là

số bản cần in (1 ≤ T ≤ 2, 1 ≤ P, C, ≤ 109)

Output:

• số tờ giấy A4 tối thiểu cần dùng

#include <iostream>

using namespace std;

int main(){

long T,P,C,A4;

cin>>T>>P>>C;

1<=T<=2;

if (T == 1)

{

A4 = P * C;

cout << A4 << endl;

}

else if (T == 2){

if (P % 2 == 0){

A4 = P / 2 * C;

} else{

A4 = (P+1) / 2 * C ; } cout << A4 << endl;

}

return 0;

}

10 Viết chương trình nhập vào 3 số nguyên là ngày tháng năm Hãy xác định ngày tháng năm có hợp lệ hay không

Lưu ý:

- Ngày phải tương ứng với tháng

- Tháng phải từ 1 đến 12

Trang 6

- Năm phải >= 1900

- Năm nhuận là năm chia hết cho 400 hoặc chia hết cho 4 nhưng không chia hết cho 100 Input: 3 số nguyên dương

Output: YES (hợp lệ), NO (không hợp lệ)

Vd:

Input: 28 9 2017

Output: YES

#include<iostream>

using namespace std;

int main(){

int d,m,y;

cin>>d>>m>>y;

if(y<1900 || m<1 ||m>12||d<1||d>31){

cout<<"NO";

}

else{

int daymax;

switch(m){

case 4: case 6: case 9: case 11:

daymax=30;

break;

case 1: case 3: case 7: case 8: case 10: case 12:

daymax=31;

break;

case 2:

if(y%400==0||(y%4==0&&y%100!=0)){

daymax=29;

}

else daymax=28;

break;

}

if(d<=daymax) cout<<"YES";

else cout<<"NO";

}

return 0;

}

11 giá trị nhất lớn

Input: 5 số nguyên a, b, c ,d, e (đều bé hơn 10^5)

Output: xuất ra số có giá trị nhất lớn trong 5 số trong Input

#include<iostream>

using namespace std;

int main(){

int a,b,c,d,e;

cin>>a>>b>>c>>d>>e;

int max=a;

if(max<b) max=b;

if(max<c) max=c;

if(max<d) max=d;

if(max<e) max=e;

cout<<max;

return 0;

}

12 MAXMIN

Trang 7

Input:

• Nhập vào 1 số gồm 4 chữ số

Output:

• Tính tổng chữ số nhỏ nhất và chữ số lớn nhất của số trong input

#include<iostream>

using namespace std;

int main(){

int n;

cin>>n;

int a,b,c,d;

d=n%10;

c=(n/10)%10;

b=(n/100)%10;

a=n/1000;

int max,min;

max=a;min=a;

if(max<b) max=b;

if(max<c) max=c;

if(max<d) max=d;

if(min>b) min=b;

if(min>c) min=c;

if(min>d) min=d;

cout<<max+min;

return 0;

}

III Vòng lặp for…; while …; do…while

1 Nhập vào 1 dãy số, yêu cầu tính tổng các chữ số của dãy đó.

#include <iostream>

using namespace std;

int main() {

int n;

while (cin>>n){

int tongchuso=0;

while(n>0){

int r=n%10;

tongchuso += r;

n/=10;

}

cout<<tongchuso<<endl;

}

return 0;

}

2 Viết chương trình in ra màn hình ngôi sao (với chiều cao h nhập từ bàn phím)

// Ngôi sao tam giác

#include <iostream>

using namespace std;

int main() {

Trang 8

int n;

cin>>n;

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

for(int j=1;j<=i;j++){

cout<<"*";

}

cout<<endl;

}

return 0;

}

3 Viết chương trình in ra màn hình hình chữ nhật sao với độ dài 2 cạnh nhập vào từ bàn phím.

Input: 2 số nguyên dương a, b

Output: hình chữ nhật ngôi sao tương ứng độ dài 2 cạnh

#include <iostream>

using namespace std;

int main() {

unsigned long a,b;

cin>>a>>b;

for (int c=1 ; c<=a ; c++)

{

for (int d=1 ; d<=b ; d++)

cout<<"*";

if (c<a) cout<<endl;

}

}

4 Yêu cầu tìm UCLN của 2 số đó.

#include<iostream>

using namespace std;

int main(){

int a,b;

cin>>a>>b;

while(b>0){

int r=a%b;

a=b;

b=r;

}

cout<<a;

return 0;

}

/*Nhập vào 2 số nguyên a và b

Yêu cầu tìm UCLN của 2 số đó

*/

// giải thuật euclid:

//ucln(a,b) = a nếu b=0 //ucln(a,b) =ucln(b,a%b) nếu b>0

5 Xuất tổng các số lẻ từ 1 đến n

#include <iostream>

using namespace std;

int main(){

int n;

cin>>n;

int s=0;

for(int i=1;i<=n;i += 2){

Trang 9

s +=i;

}

cout<<s;

return 0;

}

#include<iostream>

using namespace std;

int main(){

long n;

cin>>n;

int x;

while(n>=10){

n/=10;

x++;

}

cout<<x+1;

return 0;

}

của nó?

#include<iostream>

using namespace std;

int main(){

long n,a;

cin>>n;

long b = 0;

while(n > 0){

a = n % 10;

b = b * 10 + a;

n = n / 10;

}

cout<<b;

return 0;

}

#include<iostream>

using namespace std;

int main(){

long n,kq=0;

cin>>n;

while(n>0){

int r=n%10;

kq=kq+r;

n/=10;

}

cout<<kq;

return 0;

Trang 10

}

9 Viết chương trình tính tổng số tự nhiên n và số ngược của nó?

Giải thích: kết quả ra 807 vì 453+354=807

#include<iostream>

using namespace std;

int main(){

long x,n;

cin>>x;

long z;

z=x;

long y=0;

while(x>0){

n=x%10; //gía trị chia lấy dư

y=y*10+n;//

x=x/10;

}

cout<<z+y;

return 0;

}

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

TỪ KHÓA LIÊN QUAN

w