Vẽ thuật toán và viết chương trình tính và in ra số Fibonaci F(n) với n nhập từ bàn phím. Biết F(n) = F(n-1) + F(n-2), cho trước F(1) = 1; F(2) = 1;
Gợi ý: Viết hàm số tính Fib(n) trả về giá trị số Fibonaci thứ n.
Cho dãy số Fibonaci: f1=f2=1 và f(n)=f(n-1) + f(n-2) (n>2)
Viết chương trình từ bàn phím số n và in ra màn hình DÃY SỐ Fiobonaci thứ n.
{Mình muốn in ra màn hình 1 loạt dãy số chứ không phải in ra 1 số Fibonaci}
program fibonaci;
uses crt;
var f:array[1..100]of integer;
n,i,j:integer;
begin
clrscr;
write('n='); readln(n);
f[1]:=1;
f[2]:=1;
i:=2;
repeat
inc(i);
f[i]:=f[i-1]+f[i-2];
until i=n;
writeln(n,' so fibonaci dau tien la: ');
for i:=1 to n do
write(f[i]:4);
readln;
end.
Help me ( ngôn ngữ lập trình c++)
Câu 1. Tính số fibonaci thứ N. biết f(1)= 1; f(2) = 1; f(N)=f(N-2)+F(N-1) Câu 7: Cho dãy a gồm m số nguyên (|ai| <=10), dãy b gồm n số nguyên (bị <=10). 2 dãy này đã được sắp xếp không giảm. Hãy in ra một dãy c có các phần tử gồm 2 dãy số trên cũng được sắp xếp không giảm.
Câu 2. Cho dãy số gồm có N phần tử. Hãy đổi vị trí của phần tử lớn nhất và nhỏ nhất cho nhau. Nếu có nhiều phần tử lớn nhất và nhỏ nhất thì đổi chỗ phần tử lớn nhất có vị trí lớn nhất cho phần tử nhỏ nhất có vị trí nhỏ nhất chonhau.
2:
#include <bits/stdc++.h>
using namespace std;
int A[100],ln,nn,vt1,vt2,n;
int main()
{
cin>>n;
for(int i=1; i<=n; i++) cin>>A[i];
ln=A[1];
for (int i=1; i<=n; i++)
ln=max(ln,A[i]);
nn=A[1];
for (int i=1; i<=n; i++)
nn=min(nn,A[i]);
vt1=1; vt2=n;
for (int i=1; i<=n; i++)
if (ln==A[i] && vt1<=i) vt1=i;
for (int i=n; i>=1; i--)
if (nn==A[i] && vt2>=i) vt2=i;
swap(A[vt1],A[vt2]);
for (int i=1; i<=n; i++)
cout<<A[i]<<" ";
}
1. Viết chương trình tính tích N=1*2*3*...*n (với n được nhập từ bàn phím)
2. Viết chương trình tính tổng A=1/1*3+1/2*4+1/3*5+...+1/n*(n+2)
3. Viết chương trình tính tổng số lẻ có trong dãy từ 0->n (n được nhập từ bàn phím)
4. Viết chương trình in ra màn hình các số chẵn có trong dãy từ 0->n (n được nhập từ bàn phím) và đếm có bao nhiêu số.
5. Viết chương trình in ra màn hình các số lẻ có trong dãy số từ 0->n (n được nhập từ bàn phím) và đếm có bao nhiêu số.
6. Viết chương trình nhập số nguyên n. Tìm và đưa ra màn hình các ước của n.
7. Viết chương trình in ra màn hình các bội của n ( n được nhập từ bàn phím)
8. Viết chương trình tính tổng S=1/1+1/2+1/3+...+1/n (n được nhập từ bàn phím)
Câu 6:
uses crt;
var n,i:integer;
begin
clrscr;
readln(n);
for i:=1 to n do
if n mod i=0 then write(i:4);
readln;
end.
5:
uses crt;
var n,i,dem:integer;
begin
clrscr;
readln(n);
dem:=0;
for i:=0 to n do
if i mod 2=1 then
begin
write(i:4);
dem:=dem+1;
end;
writeln;
writeln(dem);
readln;
end.
Viết chương trình nhập từ bàn phím một số nguyên x hãy tính và đưa ra màn hình f(x)=x^10+x^5+1
Program HOC24;
var i,n,x: integer
fx,f: longint;
begin
write('Nhap x: '); readln(x);
fx:=1;
for i:=1 to 10 do
begin
fx:=fx*x;
if i=5 then f:=fx;
end;
fx:=fx+f+1;
write('f(',x,')=',fx);
readln
end.
Bài 1: viết chương trình nhập dãy số nguyên A gồm N phần tử. Với N được nhập từ bàn phím. Tìm và in kết quả ra màn hình phân tử nhỏ nhất của dãy số.
Bài 2:viết chương trình nhập dãy số nguyên A gồm N phần tử. Với N được nhập từ bàn phím. Tìm và in kết quả ra màn hình phân tử lớn nhất của dãy số
Bài 1:
uses crt;
var a:array[1..100]of integer;
i,n,min:integer;
begin
clrscr;
write('n='); readln(n);
for i:=1 to n do
begin
write('A[',i,']='); readln(a[i]);
end;
min:=a[1];
for i:=1 to n do
if min>a[i] then min:=a[i];
writeln(min);
readln;
end.
Bài 2:
uses crt;
var a:array[1..100]of integer;
i,n,max:integer;
begin
clrscr;
write('n='); readln(n);
for i:=1 to n do
begin
write('A[',i,']='); readln(a[i]);
end;
max:=a[1];
for i:=1 to n do
if max<a[i] then max:=a[i];
writeln(max);
readln;
end.
1. Thực hành
Bài 1: Viết chương trình nhập số nguyên n từ bàn phím. Kiểm tra và in ra màn hình số n có hợp lệ hay không với điều kiện n là số nguyên dương chẵn.
Bài 2: Viết chương trình Pascal nhập các số nguyên x và y từ bàn phím, in giá trị của x và y ra màn hình. Sau đó hoán đổi các giá trị của x và y rồi in lại ra màn hình giá trị của x và y.
• Ví dụ cho x:=5; y:=7.Hoán đổi để x:=7; y:=5.Cho 1 biến trung gian là z, ta hoán đổi x, y cho nhau bằng cách:
• z:=y { gán giá trị số 7 vào biến nhớ z }
• y:=x { gán giá trị số 5 vào biến nhớ y }
• x:=z { gán giá trị số 7 vào biến nhớ x }
Bài 3: Viết chương trình nhập vào ba số nguyên a, b và c từ bàn phím. Tính và in ra màn hình:
X= a + b + c
Y= (a + b)2 / c.
Chạy lại chương trình và nhập giá trị cho a là 10.5, quan sát kết quả và nêu nhận xét.
Bài 2:
#include <bits/stdc++.h>
using namespace std;
long long x,y;
int main()
{
cin >>x>>y;
cout<<x<<" "<<y;
swap(x,y);
cout<<x<<" "<<y;
return 0;
}
Help me ( ngôn ngữ lập trình c++)
Help me ( ngôn ngữ lập trình c++)
Câu 1. Tính số fibonaci thứ N. biết f(1)= 1; f(2) = 1; f(N)=f(N-2)+F(N-1)
Câu 2: Cho dãy a gồm m số nguyên (|ai| <=10), dãy b gồm n số nguyên (bị <=10). 2 dãy này đã được sắp xếp không giảm. Hãy in ra một dãy c có các phần tử gồm 2 dãy số trên cũng được sắp xếp không giảm.
Câu 3. Cho dãy số gồm có N phần tử. Hãy đổi vị trí của phần tử lớn nhất và nhỏ nhất cho nhau. Nếu có nhiều phần tử lớn nhất và nhỏ nhất thì đổi chỗ phần tử lớn nhất có vị trí lớn nhất cho phần tử nhỏ nhất có vị trí nhỏ nhất chonhau.
Câu 1: Tính số fibonaci thứ N. biết f(1)= 1; f(2) = 1; f(N)=f(N-2)+F(N-1)
#include <iostream>
int fibonacci(int n) {
if (n <= 2) {
return 1;
}
int prev = 1;
int current = 1;
int fib;
for (int i = 3; i <= n; i++) {
fib = prev + current;
prev = current;
current = fib;
}
return fib;
}
int main() {
int N;
std::cin >> N;
int result = fibonacci(N);
std::cout << "Số Fibonacci thứ " << N << " là: " << result << std::endl;
return 0;
}
Câu 2: Cho dãy a gồm m số nguyên (|ai| <=10), dãy b gồm n số nguyên (bị <=10). 2 dãy này đã được sắp xếp không giảm. Hãy in ra một dãy c có các phần tử gồm 2 dãy số trên cũng được sắp xếp không giảm.
#include <iostream>
#include <vector>
std::vector<int> mergeArrays(const std::vector<int>& a, const std::vector<int>& b) {
std::vector<int> c;
int i = 0;
int j = 0;
while (i < a.size() && j < b.size()) {
if (a[i] <= b[j]) {
c.push_back(a[i]);
i++;
} else {
c.push_back(b[j]);
j++;
}
}
while (i < a.size()) {
c.push_back(a[i]);
i++;
}
while (j < b.size()) {
c.push_back(b[j]);
j++;
}
return c;
}
int main() {
int m, n;
std::cin >> m >> n;
std::vector<int> a(m);
std::vector<int> b(n);
for (int i = 0; i < m; i++) {
std::cin >> a[i];
}
for (int i = 0; i < n; i++) {
std::cin >> b[i];
}
std::vector<int> c = mergeArrays(a, b);
std::cout << "Dãy c sau khi sắp xếp không giảm là:" << std::endl;
for (int i = 0; i < c.size(); i++) {
std::cout << c[i] << " ";
}
std::cout << std::endl;
return 0;
}
Câu 3: Cho dãy số gồm có N phần tử. Hãy đổi vị trí của phần tử lớn nhất và nhỏ nhất cho nhau. Nếu có nhiều phần tử lớn nhất và nhỏ nhất thì đổi chỗ phần tử lớn nhất có vị trí lớn nhất cho phần tử nhỏ nhất có vị trí nhỏ nhất cho nhau.
#include <iostream>
#include <vector>
#include <algorithm>
void swapMinMax(std::vector<int>& arr) {
int minIndex = std::min_element(arr.begin(), arr.end()) - arr.begin();
int maxIndex = std::max_element(arr.begin(), arr.end()) - arr.begin();
std::swap(arr[minIndex], arr[maxIndex]);
}
int main() {
int N;
std::cin >> N;
std::vector<int> arr(N);
for (int i = 0; i < N; i++) {
std::cin >> arr[i];
}
swapMinMax(arr);
std::cout << "Dãy số sau khi đổi vị trí của phần tử lớn nhất và nhỏ nhất cho nhau là:" << std::endl;
for (int i = 0; i < N; i++) {
std::cout << arr[i] << " ";
}
std::cout << std::endl;
return 0;
}
Câu 2: (5 điểm)
a) Hãy mô tả thuật toán chương trình nhập n số nguyên từ bàn phím. Đếm xem có bao nhiêu số chẵn và tính tổng của các số chẵn. Biết N cũng được nhập từ bàn phím
b)Viết chương trình nhập dãy số nguyên từ bàn phím. Đếm xem có bao nhiêu số chẵn và tính tổng của các số chẵn. Biết N cũng được nhập từ bàn phím.
Câu 2:
a) Mô tả thuật toán
-Bước 1: Nhập n và nhập dãy số
-Bước 2: dem←0; i←1; t←0;
-Bước 3: Nếu a[i] mod 2=0 thì dem←dem+1 và t←t+a[i];
-Bước 4: i←i+1;
-Bước 5: Nếu i<=n thì quay lại bước 3
-Bước 6: Xuất t và dem
-Bước 7: Kết thúc
Câu 2:
b) uses crt;
var a:array[1..100]of integer;
i,n,t,dem:integer;
begin
clrscr;
write('Nhap n='); readln(n);
for i:=1 to n do
begin
write('A[',i,']='); readln(a[i]);
end;
t:=0;
dem:=0;
for i:=1 to n do
if a[i] mod 2=0 then
begin
t:=t+a[i];
inc(dem);
end;
writeln('So so chan la: ',dem);
writeln('Tong cac so chan la: ',t);
readln;
end.