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

10 190 0
Một số bài tập Upcoder

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

Thông tin tài liệu

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]

(1)

Một số tập Upcoder I Nhập & xuất:

1 Bài 1:Lấy xác chữ số thập phân Input: Nhập vào số ngun theo định dạng sau:

• Dịng 1: số nguyên a b

• Dịng 2: số ngun c d

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

Output:

• Xuất số kết 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: ví dụ muốn xuất chữ số thập phân biến x, với x biến số thực sử dụng sau: #include<stdio.h>

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

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

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

• Dịng 2: chưa ký tự Output:

• Xuất tổng nguyên ký tự input hình (dựa vào hệ 10 ký tự 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 số nguyên Input:

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

• Xuất giá trị tuyệt đối số nguyên

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

int n; cin>>n;

(2)

}

II If… (If…else…) _ witch…case…

1 số phương: Nhập vào số

Kiểm tra số có phải số phương khơng?

Xuất: yes, số 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 số

Kiểm tra số có phải số ngun tố khơng?

Xuất: true, 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 số mà tổng ước số (khơng tính nó)

yêu cầu: nhập vào số, xuất Yes số hồ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; }

(3)

else cout<<"No"; return 0;

}

4 nhập vào số nguyên phép toán Yêu cầu thực phép toán (là

phép toán: +,-,*,%) Input:

• Dịng 1: nhập vào số ngun A, B • Dịng 2: Nhập vào phép tốn Output:

• Biểu thức thực phép tố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 sơ nhỏ 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;

(4)

return 0; }

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

Giải phương trình Ax + B = Với A, B hai hệ sô kiểu số nguyên 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 : VSN

- Nếu phương có nghiệm, xuất nghiệm (Lưu ý: kết xuất số thực (lấy 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 dòng, dòng số nguyên, tương ứng với hệ số a,b,c Output:

- Nếu phương trình có nghiệm, xuất nghiệm lấy chữ số thập (nếu có nghiệm xuất nghiệm 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, xt VSN

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

#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{

(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 số tài liệu để phục vụ giảng dạy nghiên cứu, chúng luận văn/báo cáo nghiên cứu khoa học giáo trình giảng dạy Biết loại tài liệu có quy định khác nhau:

• Nếu luận văn báo cáo khoa học phải in mặt

• Nếu giáo trình, in mặt để tiết kiệm chi phí • Tất loại tài liệu phải in giấy A4

Yêu cầu 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 số ngun khơng âm: T, P C Trong T loại tài liệu (1 luận văn/báo cáo khoa học, giáo trình), P số trang tài liệu C số cần in (1 ≤ T ≤ 2, ≤ 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 % == 0){

A4 = P / * C; }

else{

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

}

return 0; }

10 Viết chương trình nhập vào số nguyên 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 ý:

(6)

- Năm phải >= 1900

- Năm nhuận năm chia hết cho 400 chia hết cho không chia hết cho 100 Input: số nguyên dương

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

Input: 28 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ị lớn

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

Output: xuất số có giá trị lớn số 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; }

(7)

Input:

• Nhập vào số gồm chữ số Output:

• Tính tổng chữ số nhỏ chữ số lớn số 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 dãy số, yêu cầu tính tổng chữ số 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 hình ngơi (với chiều cao h nhập từ bàn phím)

(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 hình hình chữ nhật với độ dài cạnh nhập vào từ

bàn phím.

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

Output: hình chữ nhật tương ứng độ dài 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 u cầu tìm UCLN 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 số nguyên a và b Yêu cầu tìm UCLN của số đó */

// giải thuật euclid: //ucln(a,b) = a b=0

//ucln(a,b) =ucln(b,a%b) b>0

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

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

int n; cin>>n;

int s=0;

(9)

s +=i; }

cout<<s;

return 0; }

6 Viết chương trình nhập vào số nguyên đếm xem có chữ số?

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

long n; cin>>n;

int x;

while(n>=10){ n/=10; x++; }

cout<<x+1;

return 0; }

7 Viết chương trình nhập vào số nguyên n (n <= 10^18) xuất số đảo ngược

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; }

8 Viết chương trình tính tổng chữ số số tự nhiên n (n <= 10^18)?

Giải thích: Ouput kết 12 , 4+5+3=12

#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;

(10)

}

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

Giải thích: kết 807 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;

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

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

Tài liệu liên quan