Cho 3 số nguyên dương có tổng là 18, mỗi số đều bé hơn 9. Có mấy cách chọn 1 bộ số như vậy.( không tính các hoán vị)
Bài 2: Phân tích số
Cho số tự nhiên n (n ≤ 400). Hãy cho biết có bao nhiêu cách phân tích số n thành tổng của dãy các số nguyên dương, các cách phân tích là hoán vị của nhau chỉ tính là một cách.
Ví dụ: Với n=5, có 7 cách phân tích:
1. 5 = 1 + 1 + 1 + 1 + 1
2. 5 = 1 + 1 + 1 + 2
3. 5 = 1 + 1 + 3
4. 5 = 1 + 2 + 2
5. 5 = 1 + 4
6. 5 = 2 + 3
7. 5 = 5
yêu cầu không dùng đệ quy
Bạn sài Quy hoạch động đi
c++:
#include <iostream>
#include <vector>
using namespace std;
const int N = (int) 1e5 + 5;
const int MOD = (int) 1e9;
int a[N];
int n;
int main() {
cin >> n;
if (n == 0) {
cout << 0 << endl;
return 0;
}
vector<int> p;
for (int i = 1;;) {
p.push_back(i * (3 * i - 1) / 2);
if (p.back() >= n) break;
i = -i;
if (i > 0) i++;
}
a[0] = 1;
for (int i = 1; i <= n; ++i) {
int sign = 1, cnt = 0;
for (int j : p) {
if (j > i) break;
a[i] += sign * a[i - j];
if (a[i] < 0) a[i] += MOD;
if (a[i] >= MOD) a[i] -= MOD;
cnt += 1;
if (cnt == 2) {
cnt = 0;
sign = -sign;
}
}
}
cout << a[n] << endl;
return 0;
}
Cho số nguyên dương N ( N ≤ 250 ) và dãy n số nguyên dương A1 A2,..., An mỗi số đều không vượt quá 500. Yêu cầu:
1) Đếm số lượng các phần tử có giá trị lẻ trong dãy số A.
2) Tính tổng giá trị các phần tử đứng vị trí chẵn trong dãy số A
3) Tính tổng giá trị các phần tử đứng vị trí lẻ trong dãy số A.
4) Tính tổng giá trị các phần tử là số chẵn đứng ở vị trí chẵn trong dãy A.
5) Tính tổng giá trị các phần tử là số lẻ đứng ở vị trí lẻ trong dãy A.
6) Tính trung bình cộng các phần tử trong dãy.
uses crt;
var a:array[1..250]of integer;
i,n,dem,t,t1,t2,t3,t4:integer;
begin
clrscr;
repeat
write('Nhap n='); readln(n);
until (0<n) and (n<=250);
for i:=1 to n do
begin
repeat
write('A[',i,']='); readln(a[i]);
until (0<a[i]) and (a[i]<=500);
end;
dem:=0;
for i:=1 to n do
if a[i] mod 2=1 then inc(dem);
writeln('So phan tu co gia tri le la: ',dem);
t:=0;
for i:=1 to n do
if i mod 2=0 then t:=t+a[i];
writeln('Tong cac phan tu co chi so chan la: ',t);
t1:=0;
for i:=1 to n do
if i mod 2=1 then t1:=t1+a[i];
writeln('Tong cac phan tu co chi so le la: ',t1);
t2:=0;
for i:=1 to n do
if (i mod 2=0) and (a[i] mod 2=0) then t2:=t2+a[i];
writeln('Tong cac phan tu chan co chi so chan la: ',t2);
t3:=0;
for i:=1 to n do
if (i mod 2=1) and (a[i] mod 2=1) then t3:=t3+a[i];
writeln('Tong cac phan tu co chi so le la: ',t3);
t4:=0;
for i:=1 to n do
t4:=t4+a[i];
writeln('Trung binh cong cac so trong day la: ',t4/n:4:2);
readln;
end.
Chọn 3 chữ số nào đó từ 1 đến 9 để biến nó thành số có 3 chữ số và mỗi chữ số chỉ được dùng một lần. Hỏi có bao nhiêu số như vậy biết mỗi số đều có tổng các chữ số là 13
Cho một số phát biểu về hoán vị gen như sau:
(1) Tần số hoán vị có thể bằng 50%.
(2) Để xác định tần số hoán vị gen người ta chỉ có thể dùng phép lai phân tích.
(3) Tỉ lệ giao tử mang gen hoán vị luôn lớn hơn hoặc bằng 25%.
(4) Tần số hoán vị bằng tổng tỉ lệ các giao tử mang gen hoán vị.
Trong các phát biểu trên, số phát biểu không đúng là
A. 1
B. 3
C. 2
D. 4
Đáp án : C
(2) Để xác định tần số hoán vị gen người ta có thể dùng nhiều phép lai khác mà không nhất thiết là lai phân tích. Ví dụ dùng phép lai giữa hai cá thể có cùng kiểu gen
(3) Tỷ lệ giao tử không mang gen hoán vị mới luôn lớn hơn hoặc bằng 25%
Vậy (2) và (3) không đúng
Cho một số phát biểu về hoán vị gen như sau:
(1) Tần số hoán vị có thể bằng 50%.
(2) Để xác định tần số hoán vị gen người ta chỉ có thể dùng phép lai phân tích.
(3) Tỉ lệ giao tử mang gen hoán vị luôn lớn hơn hoặc bằng 25%.
(4) Tần số hoán vị bằng tổng tỉ lệ các giao tử mang gen hoán vị. Trong các phát biểu trên, số phát biểu không đúng là
A. 1
B. 4
C. 2
D. 3
Đáp án : C
1- đúng
2 – sai , ngoài phương pháp lai phân tich có thể dụng phương pháp tự thụ hoặc giao phối gần
3- Sai , gen hoán vị luôn nhỏ hơn 25 %
4 – đúng
Cho một số phát biểu về hoán vị gen như sau:
(1) Tần số hoán vị có thể bằng 50%.
(2) Để xác định tần số hoán vị gen người ta chỉ có thể dùng phép lai phân tích.
(3) Tỉ lệ giao tử mang gen hoán vị luôn lớn hơn hoặc bằng 25%.
(4) Tần số hoán vị bằng tổng tỉ lệ các giao tử mang gen hoán vị.
Trong các phát biểu trên, số phát biểu không đúng là
A. 2
B. 4
C. 3
D. 1
Cho một số phát biểu về hoán vị gen như sau:
Tần số hoán vị có thể bằng 50%
(2) Để xác định tần số hoán vị gen người ta chỉ có thể dùng phép lai phân tích
(3) Tỉ lệ giao tử mang gen hoán vị luôn lớn hơn hoặc bằng 25%
(4) Tần số hoán vị bằng tổng tỉ lệ các giao tử mang gen hoán vị
Trong các phát biểu trên số phát biểu không đúng là:
A. 2
B. 1
C. 3
D. 4
Đáp án : C
Gen là một đoạc của phân tử ADN mang thông tin mã hóa một chuỗi polipeptit hay một phân tử
Bài 4: Tìm số dư của phép chia cho 9. CHIA9.PAS Cho một số nguyên dương N có M chữ số. Yêu cầu: Tìm số dư của phép chia số N cho 9. Dữ liệu vào: Cho trong file văn bản CHIA9.INP, có cấu trúc như sau: - Dòng 1: Ghi số nguyên dương M là số lượng chữ số của số N (1 ≤ M ≤ 100). - Dòng 2: Ghi M chữ số của số N, các chữ số được ghi liền nhau. Dữ liệu ra: Ghi ra file văn bản CHIA9.OUT, theo cấu trúc như sau: - Dòng 1: Ghi số nguyên dương Q, là số dư tìm được. Ví dụ: CHIA9.INP CHIA9.OUT 5 74283 6
Bài 5: Tìm số sát sau - SOSATSAU.PAS Cho số tự nhiên A có N chữ số. Hãy hoán vị các chữ số trong A để thu được số B thoả mãn đồng thời hai điều kiện sau: - B lớn hơn A. - B nhỏ nhất. Dữ liệu vào: Cho trong file SOSATSAU.INP có cấu trúc như sau: - Dòng 1: Ghi số N là số lượng chữ số của A (0a[i-1]. Do đoạn cuối giảm dần, điều này thực hiện bằng cách tìm từ cuối dãy lên đầu gặp chỉ số k đầu tiên thỏa mãn a[k]>a[i-1] (có thể dùng tìm kiếm nhị phân) - Đảo giá trị a[k] và a[i-1] - Lật ngược thứ tự đoạn cuối giảm dần (từ a[i] đến a[k]) trở thành tăng dần + Nếu không tìm thấy tức là toàn dãy đã sắp xếp giảm dần, đây là hoán vị cuối cùng.
Bài 2. MẬT KHẨU. Cu Tí thường xuyên tham gia thi lập trình trên mạng. Vì đạt được thành tích cao nên Tí được gửi tặng một phần mềm diệt virus. Nhà sản xuất phần mềm cung cấp cho Tí một mã số là một dãy gồm các bộ ba chữ số ngăn cách nhau bởi dấu chấm và có chiều dài không quá 255 (kể cả chữ số và dấu chấm). Để cài đặt được phần mềm, Tí phải nhập vào mật khẩu của phần mềm. Mật khẩu là một số nguyên dương M được tạo ra bằng cách tính tổng giá trị các bộ ba chữ số trong dãy mã số, các bộ ba này được đọc từ phải sang trái. - Yêu cầu: Cho biết mã số của phần mềm, hãy tìm mật khẩu của phần mềm đó. - Dữ liệu vào: Cho từ tệp văn bản có tên BL2.INPgồm một dòng chứa xâu ký tự S (độ dài xâu không quá 255 ký tự) là mã số của phần mềm. - Kết quả: Ghi ra tệp văn bản có tên BL2.OUTgồm một số nguyên là mật khẩu tìm được. MK.INP MK.OUT 123.234 257
Bài 6: Biến đổi số BIENDOI.PAS Cho một số nguyên dương M có K chữ số (0 < M; 1 ≤ K ≤ 200). Người ta thực hiện biến đổi số M bằng cách xóa đi trong M các chữ số 0 và sau đó sắp xếp các chữ số còn lại theo thứ tự không giảm của giá trị từng chữ số. Gọi số nguyên dương N là số thu được sau khi thực hiện biến đổi số M. Yêu cầu: Hãy tìm số nguyên dương N. Dữ liệu vào: Nhập vào từ tệp biendoi.inp số M Dữ liệu ra: Ghi ra tệp biendoi.out số N Ví dụ: M=3880247 N=234788
Cho trước 5 số nguyên bất kỳ. Hỏi có thể làm cho cả 5 số đó bằng nhau bằng cách sau đây hay không. Mỗi lần được chọn ra 3 số bất kỳ từ 5 số đó và thêm vào mỗi số được chọn một đơn vị. Cứ tiếp tục như vậy.