Cho số nguyên dương N, ta có dãy số A gồm các số nguyên từ 1 đến N. Phép nén dãy số là tạo ra dãy số mới mà các phần tử được tạo ra bằng cách lần lượt cộng hai số cạnh nhau của dãy số ban đầu.
Mỗi lần nén dãy số, dãy số mới sẽ ít hơn dãy số trước một phần tử. Ta nén dãy số đến khi còn một phần tử, phần tử đó là giá trị nén dãy số. Yêu cầu: in ra giá trị nén của dãy số. Vì kết quả có thể rất lớn, nên chỉ cần in ra số dư của phép chia giá trị nén dãy số cho 1000000000 (10^9).
Ví dụ với N=4 ta có kết quả cuối cùng cần in ra là số 20
Dãy ban đầu: 1 - 2 - 3 - 4
Nén lần 1: 3 - 5 - 7
Nén lần 2: 8 - 12
Nén lần 3: 20
Yêu cầu: nhập N (N có thể có 16 chữ số) in ra số dư của phép chia giá trị nén dãy số cho 1000000000 (10^9)
Ví dụ: Nhập N=4 xuất ra màn hình 20.
```python
def nen_day_so(N):
if N == 1:
return 1
else:
return (nen_day_so(N-1) + N) % 1000000000
N = int(input("Nhập N: "))
ket_qua = nen_day_so(N)
print(ket_qua)
```
Cho dãy số gồm n số nguyên (n>0), các phần của dãy số lần lượt có giá trị A1, A2,... . Hãy đếm xem trong dãy A có bao phần tử có giá trị 50 a) Xác định bài toán b) Xây dựng thuật toán
#include <bits/stdc++.h>
using namespace std;
long long n,i,x,dem;
int main()
{
cin>>n;
dem=0;
for (i=1; i<=n; i++)
{
cin>>x;
if (x==50) dem++;
}
cout<<dem;
return 0;
}
Bắt đầu từ 1 số tự nhiên khác 0 nào đó, người ta xây dựng dãy các số tự nhiên theo cách sau. Mỗi số hạng được xác định bằng cách lấy số hạng trước đó cộng với chữ số lớn nhất của nó. Hỏi các dãy như vậy có nhiều nhất bao nhiêu số hạng liên tiếp là số lẻ.
Bắt đầu từ 1 số tự nhiên khác 0 nào đó, người ta xây dựng dãy các số tự nhiên theo cách sau. Mỗi số hạng được xác định bằng cách lấy số hạng trước đó cộng với chữ số lớn nhất của nó. Hỏi các dãy như vậy có nhiều nhất bao nhiêu số hạng liên tiếp là số lẻ.
Cho dãy A gồm n số nguyên (n>0), các phần tử lần lượt của dãy số có giá trị A1,A2,.....An . Hãy đếm xem trong dãy A có bao nhiêu phần tử có giá trị là 27 .
a) Xác định bài toán
b) Xây dựng thuật toán
#include <bits/stdc++.h>
using namespace std;
long long n,i,x,dem;
int main()
{
cin>>n;
dem=0;
for (i=1;i<=n; i++)
{
cin>>x;
if (x==27) dem++;
}
cout<<dem;
return 0;
}
a)
Input: số nguyên dương n và dãy số A1,A2,...,An
Output: Số phần tử có giá trị bằng 27
b) Thuật toán liệt kê:
Bước 1: Nhập n và dãy A1,A2,..,An
Bước 2: Dem←0; i←1;
Bước 3: Nếu i>n thì in ra Dem và kết thúc
Bước 4: Nếu Ai = 27 thì Dem←Dem+1;
Bước 5: i←i+1, quay lại bước 3
Cho dãy A gồm n số nguyên (n>0), các phần tử của dãy số lần lượt có giá trị A1, A2,….,An. Hãy đếm xem trong dãy A có bao nhiêu phần tử có giá trị là 50
a. Xác định bài toán
b. Xây dựng thuật toán
#include <bits/stdc++.h>
using namespace std;
long long n,i,x,dem;
int main()
{
cin>>n;
dem=0;
for (i=1; i<=n; i++)
{
cin>>x;
if (x==50) dem++;
}
cout<<dem;
return 0;
}
xây dựng bài toán cho các bài toán sau:
a)nhập vào số nguyên N và dãy các số a1,a2,...,an.hãy tính tổng các số dương có trong dãy
b)nhập vào số nguyên N và dãy các số a1,a2,...,an.hãy đếm các số dương có trong dãy
xét dãy số A các thừa số nguyên tố 2,2,3,5,7,11,13,17,19,...và dãy B gồm các số thu được từ dãy A bằng cách ghép 2 số liên tiếp trong dãy A. Vd:23,57,1113,1719,...Trong dãy B có những phần tử là số nguyên tố, chẳng hạn:25,3127,8389,157163,.....Các số nguyên tố trong dãy B gọi là số nguyên tố ghép.Yêu cầu:cho trước 1 số nguyên tố k(k<=500).Hãy tìm số nguyên tố ghép thứ k
(pascal) (làm ơn giúp minh cần nó trước ngày 29/1) :((( (làm bằng array nếu có thể)
CẢM ƠN
uses crt;
var d,n,k,kt1,i,j,x,kt2,u,kt:longint;
st1,st2,st:string;
y:integer;
begin
clrscr;
write('nhap so k='); readln(k);
if k>1 then begin
d:=1;
n:=3;
repeat
repeat
kt:=0;
n:=n+2;
for i:=2 to trunc(sqrt(n)) do
if n mod i=0 then kt:=1;
if kt=0 then str(n,st1);
until kt=0;
{----------------------------------------}
repeat
kt:=0;
n:=n+2;
for j:=2 to trunc(sqrt(n)) do
if n mod j=0 then kt:=1;
if kt=0 then str(n,st2);
until kt=0;
{----------------------------------------}
kt:=0;
st:=st1+st2;
val(st,x,y);
for i:=2 to trunc(sqrt(x)) do
if x mod i=0 then kt:=1;
if kt=0 then d:=d+1;
until d=k;
end;
if k=1 then write('so nguyen to ghep thu ',k,' la 23')
else writeln('so nguyen to ghep thu ',k,' la: ',x);
readln;
end.
Cho số nguyên dương n và dãy số từ a1 đến aN. Hãy xây dựng thuật toán đưa ra các phần tử âm ở trong dãy trên.