Tiêu đề: Re: Nguyễn Quỳnh Trang Tue Dec 06, 2022 10:20 am
Bài 30: - Xác định bài toán Input: N Output:Giá trị nhỏ nhất - Thuật toán - Ta thực hiện tách các chữ số N lưu vào a,b,c - Với các chữ số thu được ta có thể ghép thành số có hai chữ số theo thứ tự ban đầu ab và bc - Bài toán qui về tìm giá trị lớn nhất của 3 số nguyên dương -Viết chương trình
Code:
n=int(input()) a= n//100 b=(n//10)%10 c=n%10 v1=a*10+b v2=b*10+c v3=a*10+c rmin=v1 if rmin>v2: rmin=v2 if rmin>v3: rmin=v3 print (rmin)
-Bộ test
123 kq: 12
Được sửa bởi Nguyễn Quỳnh Trang ngày Tue Dec 06, 2022 10:42 am; sửa lần 1.
Nguyễn Quỳnh Trang
Tổng số bài gửi : 37 Join date : 05/10/2022
Tiêu đề: Re: Nguyễn Quỳnh Trang Tue Dec 06, 2022 10:21 am
Bài 22: - Xác định bài toán Input: giá trị a,b Output: nghiệm của phương trình ax+b =0 - Thuật toán Nếu a=0 thì - Nếu b=0 thì thông báo ''VSN'' ngược lại, nếu b!=0 thì thông báo ''NONE'' Ngược lại, - Tính x=-b/a; sau đó ,đưa giá trị cua x ra
-Viết chương trình
Code:
a= int(input()) b= int(input()) if a == 0: if b == 0: print("VSN") else: print("NONE") else: x=-1.0 *b/a print("{:.3f}".format(x))
-Bộ test 2 3 kq: -1,500
Được sửa bởi Nguyễn Quỳnh Trang ngày Tue Dec 06, 2022 10:42 am; sửa lần 1.
Nguyễn Quỳnh Trang
Tổng số bài gửi : 37 Join date : 05/10/2022
Tiêu đề: Re: Nguyễn Quỳnh Trang Tue Dec 06, 2022 10:22 am
Bài 21 - Xác định bài toán Input: a,b Output: giá trị lớn nhất của số ghép được từ a và b - Thuật toán m=a*10+b n=b*10+a - Viết chương trình
Được sửa bởi Nguyễn Quỳnh Trang ngày Tue Dec 06, 2022 10:46 am; sửa lần 2.
Nguyễn Quỳnh Trang
Tổng số bài gửi : 37 Join date : 05/10/2022
Tiêu đề: Re: Nguyễn Quỳnh Trang Tue Dec 06, 2022 10:22 am
Bài 24: - Xác định bài toán Input: giá trị a,b,c Output : xác định a b c có là cạnh của tam giác không nếu có thì tính diện tích tam giác - Thuật toán a b c là cạnh của tam giác khi (a+b>c) và (b+c>a) và (c+a>b) Công thức Hê-rông p= (a+b+c)/2 , s= căn(p(p-a)(p-b)(p-c)
-Viết chương trình Code:
from math import sqrt a = int(input()) b = int(input()) c = int(input()) if (a+b>c) and (b+c>a) and (c+a>b): p = (a + b + c) / 2 s = sqrt(p * (p-a) * (p-b) *(p-c)) print ("{:.3}".format(s)) else:
print ("khong phai 3 canh cua mot tam giac")
-Bộ test 2 3 4 kq: 2,9
Được sửa bởi Nguyễn Quỳnh Trang ngày Tue Dec 06, 2022 10:47 am; sửa lần 1.
Nguyễn Quỳnh Trang
Tổng số bài gửi : 37 Join date : 05/10/2022
Tiêu đề: Re: Nguyễn Quỳnh Trang Tue Dec 06, 2022 10:22 am
Bài 25: - Xác định bài toán Input: tọa độ điểm M, tâm I và bán kính R Output: Điểm M nằm trong, trên hay ngoài đường tròn
- Thuật toán Ta tính khoảng cách IM Nếu IM>R thì điểm M nằm ngoài đường tròn Nếu IM=R thì điểm M nằm trên đường tròn Nếu IM<R thì điểm M nằm trong đường tròn
-Viết chương trình
Code:
from math import sqrt x1=int(input()) y1=int(input()) x2=int(input()) y2=int(input()) r=int(input()) d=sqrt((x2-x1)*(x2-x1)+(y2-y1)*(y2-y1)) if d<r: print("M nam trong duong tron") elif d==r: print("M nam tren duong tron") else: print("M nam ngoai duong tron")
- Bộ test 2 3 4 1 5 kq: M nam trong duong tron
Được sửa bởi Nguyễn Quỳnh Trang ngày Tue Dec 06, 2022 10:47 am; sửa lần 1.
Nguyễn Quỳnh Trang
Tổng số bài gửi : 37 Join date : 05/10/2022
Tiêu đề: Re: Nguyễn Quỳnh Trang Tue Dec 06, 2022 10:32 am
Bài 28: - Xác định bài toán Input: nhập n là số có 3 chữ số Output: Số lớn nhất trong n
- Thuật toán Ta thực hiện tách các chữ số của n lưu vào a,b,c bằng phép chia nguyên và chia dư: a= n/100;b=(n/10)%10; c=n%10 Bài toán quy về tìm giá trị lớn nhất a,b và c
-Viết chương trình Code:
n=int(input()) a=n//100 b=(n//10)%10 c=n%10 res=a if res<b: res=b if res<c: res=c print(res)
[b]- Bộ test [b] 124 kq: 4
Được sửa bởi Nguyễn Quỳnh Trang ngày Tue Dec 06, 2022 10:49 am; sửa lần 1.
Nguyễn Quỳnh Trang
Tổng số bài gửi : 37 Join date : 05/10/2022
Tiêu đề: Re: Nguyễn Quỳnh Trang Tue Dec 06, 2022 10:32 am
Bài 23: - Xác định bài toán Input: a,b,c Output: giải và biện luận pt ax^2+bx+c(a khác 0)
- Thuật toán d=b*b-4*a*c Nếu d<0 thì thông báo "NONE" Ngược lại, Nếu d=0 thì x12=-b/2a; Đưa x12 ra Ngược lại thì, Tính x1= -b+căn d /2a; x2=-b- căn d/2a;; Đưa x1,x2 ra
-Viết chương trình Code:
from math import sqrt a= int(input()) b= int(input()) c= int(input()) d=b*b-4*a*c if d<0: print("NONE") elif d==0: print("x1=x2={:.3f}".format(-b/2*a)) else: x1= (-b+ sqrt(d))/(2*a) x2= (-b- sqrt(d))/(2*a) if(d>0): print("{:.3f}".format(x1)) print("{:.3f}".format(x2))
[b]- Bộ test [b] 1 2 3 kq: NONE
Được sửa bởi Nguyễn Quỳnh Trang ngày Tue Dec 06, 2022 10:50 am; sửa lần 1.
Nguyễn Quỳnh Trang
Tổng số bài gửi : 37 Join date : 05/10/2022
Tiêu đề: Re: Nguyễn Quỳnh Trang Tue Dec 06, 2022 10:33 am
Bài 26: - Xác định bài toán: Input: Tọa độ các điểm A, B, C. Kiểm tra A, B, C có là ba đỉnh của tam giác Output: Nếu A, B, C là ba đỉnh của tam giác thì tính diện tích tam giác ABC. Nếu A, B, C không là ba đỉnh của tam giác thì ghi ra "NONE" - Thuật toán: Tính độ dài AB, BC, AC theo công thức: dAB=sqrt ((xB-xA)**2+(yB-yA))**2) dBC=sqrt ((xC-xB)**2+(yC-yB))**2) dAC=sqrt ((xC-xA)**2+(yC-yA))**2) - Viết phương trình: Code:
from math import sqrt from math import pow def distance_points(mx, my, nx, ny): return sqrt(pow(nx - mx, 2) + pow(ny - my, 2)) ax = int(input()) ay = int(input()) bx = int(input()) by = int(input()) cx = int(input()) cy = int(input()) ab = distance_points(ax, ay, bx, by) bc = distance_points(bx, by, cx, cy) ca = distance_points(cx, cy, ax, ay) if (ab + bc > ca) and (bc + ca > ab) and (ca + ab > bc): p = (ab + bc + ca) / 2.0 s = sqrt(p * (p - ab) * (p - bc) * (p-ca)) print("Ket qua: {:.3f}".format(s)) else: print("a,b,c khong la ba canh cua tam giac");
- Bộ test 3 4 5 5 8 Kết quả: 1.500
3 4 5 6 7 8 Kết quả: a,b,c khong la ba canh cua tam giac
Được sửa bởi Nguyễn Quỳnh Trang ngày Tue Dec 06, 2022 10:50 am; sửa lần 1.
Nguyễn Quỳnh Trang
Tổng số bài gửi : 37 Join date : 05/10/2022
Tiêu đề: Re: Nguyễn Quỳnh Trang Tue Dec 06, 2022 10:33 am
Bài 29: Xác định bài toán : Input: Cho N là số tự nhiên 3 chữ số Output: Tìm hoán vị chữ số có giá trị lớn nhất của N. ( Ví dụ : Với N là 213 thì ta có các hoán vị là 123, 231, 312, 321, 132 và 321 là hoán vị có giá trị lớn nhất) Thuật toán : Tách các chữ số của N lưu vào a, b, c: +/ Nếu a < b thì hoán đổi vị trí của a và b +/ Nếu b < c thì hoán đổi vị trí của b và c Thực hiện xong 2 lần hoán đổi này, giá trị thu được có thể chưa lớn nhất nên ta cần thực hiện so sánh thêm 1 lần nữa: +/ Nếu a < b thì hoán đổi vị trí của a và b +/ Nếu b < c thì hoán đổi vị trí của b và c Viết chương trình : Code:
N = int(input()) a = N//100 b = (N//10)%10 c = N%10 if a<b: a,b=b,a if b<c: b,c=c,b if a<b: a,b=b,a if b<c: a,c=c,b N = a*100 + b*10 + c print(N)
Bộ test: 123 kq: 321
Được sửa bởi Nguyễn Quỳnh Trang ngày Tue Dec 06, 2022 10:51 am; sửa lần 1.
Nguyễn Quỳnh Trang
Tổng số bài gửi : 37 Join date : 05/10/2022
Tiêu đề: Re: Nguyễn Quỳnh Trang Tue Dec 06, 2022 10:36 am
Bài 11: - Xác định bài toán Input: N nguyên dương. Output:S=1/(1*2)+1/(2*3)+1*(3*4)+...+N/(N*(N+1)) - Thuật toán Áp dụng công thức tính tổng: S=1/(1*2)+1/(2*3)+1*(3*4)+...+N/(N*(N+1))=N/(N+1) -Viết phương trình Code:
n= int(input()) s= n/(n+1) print(s)
Bộ test 3 KQ: 0.75
Nguyễn Quỳnh Trang
Tổng số bài gửi : 37 Join date : 05/10/2022
Tiêu đề: Re: Nguyễn Quỳnh Trang Tue Dec 06, 2022 10:37 am
Bài 12: - Xác định bài toán Input: N nguyên dương. Output:S=1/(1*2*3)+1/(2*3*4)+1*(3*4*5)+...+N/(N*(N+1)*(N+2)) - Thuật toán Áp dụng công thức tính tổng các số tự nhiên liên tiếp: S=1/(1*2*3)+1/(2*3*4)+1*(3*4*5)+...+1/(N*(N+1)*(N+2))=(N*(N+3))/(4*(N+1)(N+2)) -Viết phương trình Code:
bài 56: - xác định bài toán input: số nguyên dương N và dãy a1,a2,...,aN output: liệt kê phần tử là số chẵn trong dãy
- thuật toán nhập dãy vào dãy a[i] duyệt từ đầu đến cuối dãy ,nếu a[i] là số chẵn thì đưa phần tử đó ra, mỗi phần tử cách nhau 1 dấu cách
- chương trình
n= int(input()) a= list() for i in range (0,n): a.append(int(input())) for i in range (0,n): if a[i] % 2 == 0: print(a[i])
- thử: 1 2 3 4 5 kết quả: 2
bài 57: - xác định bài toán input: số nguyên dương N và dãy a1,a2,...,aN output: đưa ra vị trí các phần tử là số chính phương trong dãy
- thuật toán số chính phương là số có căn bậc hai là một số nguyên biểu thức toán học: căn u=GTTĐ(căn u) nhập dãy vào mảng a[i] duyệt từ đầu đến cuối dãy ,nếu a[i] là số chính phương thì đưa vị trí i ra mỗi giá trị tìm được cách nhau 1 dấu cách
- chương trình
from math import sqrt from math import trunc n = int(input()) a = list() for i in range(0,n): a.append(int(input())) for i in range(0,n): if sqrt(a[i])==trunc(sqrt(a[i])): print(i)
- thử 3 1 9 8 kết quả 0 1
bài 58 - xác định bài toán input: số nguyên dương N và dãy a1,a2,...,aN output: đếm số lượng các phần tử trong dãy chia hết cho 2 nhưng không chia hết cho 3
- thuật toán nhập dãy vào mảng a[i] res=0; duyệt từ đầu đến cuối dãy ,nếu a[i] chia hết cho 2 và không chia hết cho 3 thì tăng biến Res lên 1 đơn vị đưa biến res
- chương trình
n= int(input()) a= list() for i in range (0,n): a.append(int(input())) res = 0 for i in range (0,n): if a[i] % 2 == 0 and a[i] % 3 !=0: res +=1 print(res)
- thử: 1 2 3 4 5 kết quả : 1
Bài 59: - xác định bài toán input: số nguyên dương N và dãy a1,a2,...,aN output: phần tử có giá trị nhỏ nhất
- thuật toán nhập dãy vào mảng a[i] khởi tạo rmin=a[0] duyệt từ đầu đến cuối dãy, nếu a[i]< rmin thì cập nhật lại rmin=a[i]; đưa rmin ra
- chương trình
n= int(input()) a= list() for i in range (0,n): a.append(int(input())) rmin=a[0] for i in range(1,n): rmin=min(rmin, a[i]) print(rmin)