3.Cho dãy N số nguyên a1, a2, ..., aN. Hãy tính tổng các số là bội của 3 a. (2 điểm) Hãy nêu ý tưởng giải quyết bài toán trên b. (2 điểm) Hãy trình bày thuật toán giải quyết bài toán trên bằng phương pháp liệt kê từng bước
t bài toán: Cho số nguyên dương N và dãy số A1, A2,…, AN . Đếm các phần tử dương có trong dãy
a. Hãy xác định Input, Output của bài toán.
b. Hãy mô tả thuật toán giải quyết bài toán trê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>0) dem++;
}
cout<<dem;
return 0;
}
cho số nguyên dương n và dãy số nguyên dương a1, a2,...,an. hãy cho biết vị trí của các số mà chữ số tận cùng là 0 hoặc 5
- Nêu ý tưởng để giải bài toán
- Viết thuật toán bằng cách vẽ sơ đồ khối cho bài toán trên
- Kẻ bảng mô phỏng thuật toán với dãy số: 10, 13, 55, 53, 30, 21, 32
Ý tưởng: Sau khi nhập dãy xong rồi chúng ta sẽ xét từng phần tử trong dãy nếu có phần tử nào chia 10 dư 0 hoặc 5 thì tăng dem lên, và dem chính là két quả của đề bài
Hãy xác định input output và nêu thuật toán giải quyết các bài toán sau:
a) cho N và dãy số :a1,a2,...aN hãy cho biết có bao nhiêu số hạng trong dãy có giá trị bằng 8?
b) Cho dãy A gồm N số nguyên . Hãy cho biết trong dãy A có bao nhiêu số chẵn ?
c) Cho số nguyên dương N và dãy số A gồm N số nguyên a1,a2,...aN viết thuật toán tính tổng của các phần tử có giá trị chẵn trong A
d) Tính tổng : S=1+2+3+...+N (với N là số nguyên dương, N>1)
e)Tính giai thừa :P=N!=1\(\times\)2\(\times\)3\(\times\)...\(\times\)N ( với N là số nguyên dương , N\(\ge\)1)
d:
#include <bits/stdc++.h>
using namespace std;
long long i,n,s;
int main()
{
cin>>n;
s=0;
for (i=1; i<=n; i++)
s=s+i;
cout<<s;
return 0;
}
Câu 2. Xét bài toán: Cho số nguyên dương N và dãy số A1, A2,…, AN. Hãy đưa ra màn hình các phần tử là số
lẻ có trong dãy
a. Hãy xác định Input, Output của bài toán.
b. Hãy mô tả thuật toán giải quyết bài toán bằng cách liệt kê hoặc vẽ sơ đồ khối
#include <bits/stdc++.h>
using namespace std;
long long n,i,x;
int main()
{
cin>>n;
for (i=1; i<=n; i++)
{
cin>>x;
if (x%2!=0) cout<<x<<" ";
}
return 0;
}
Cho dãy A gồm N số nguyên a1,a2 ,…aN và số nguyên dương k. Hãy cho biết trong dãy A có bao nhiêu số là bội của k?
Hãy xác định bài toán và mô tả thuật toán giải các bài toán
Input: N, dãy số nguyên a1,a2,...,aN và k
Output: Số phần tử là bội của k
Thuật toán liệt kê:
Bước 1: Nhập N, dãy số nguyên a1,a2,...,aN và k
Bước 2: d←0; i←1;
Bước 3: Nếu i>N thì in ra d và kết thúc
Bước 4: Nếu ai chia hết cho k thì d←d+1;
Bước 5: i←i+1; quay lại bước 3
Input: dãy số nguyên gồm n số được nhập từ bạn phím
Output: số lớn nhất, bé nhất trong dãy
B1: nhập dãy số nguyên
B2: gán max:=a[1]; min:=a[1]
B3: nếu max<a[i] thì max:=a[i]; min>a[i] then min:=a[i]
B4: in kết quả ra màn hình
Cho dãy A gồm N số nguyên a1,a2 ,…aN. Hãy cho biết tổng tất cả các số trong dãy A và giá trị trung bình cộng của các số trong dãy A?
Hãy xác định bài toán và mô tả thuật toán giải các bài toán
#include <bits/stdc++.h>
using namespace std;
double x,t;
int n,i;
int main()
{
cin>>n;
t=0;
for (i=1; i<=n; i++)
{
cin>>x;
t=t+x;
}
cout<<"tong cac so la:"<<fixed<<setprecision(2)<<t<<endl;
cout<<"trung binh la:"<<fixed<<setprecision(2)<<t/(n*1.0);
return 0;
}
Hãy xác định bài toán và viết thuật toán giải bài toán tính tổng các phần tử của dãy số A = { a 1 , a 2 , . . . , a n } cho trước.
+Xác định bài toán: (0,5đ)
- Input: n, dãy số A = { a 1 , a 2 , . . . , a n }
- Output: S=( a1 + a2 + … + an )
+ Thuật toán: (1,5đ)
Bước 1: Nhập n, và a 1 , a 2 , . . . , a n ; (0,5đ)
Bước 2: S ← 0; i ← 0;
Bước 3: i ← i + 1 ; (0,5đ)
Bước 4: Nếu i ⟨= n thì S ←S + ai ; và quay lại bước 3;
Bước 5: Thông báo kết quả S và kết thúc thuật toán. (0,5đ)