Input : Dãy số nguyên N a1... aN;
Output : Tổng các số hạng chẵn trong dãy;
B1 : Nhập N số nguyên a1,...aN;
B2 : Tong <---- 0; i <---- 1;
B3 : Nếu ai chia hết cho 2 thì Tong <---- Tong + ai;
B4 : Nếu i > N thì đưa kết quả tổng ra màn hình rồi kết thúc chương trình;
B5 : i <---- i + 1 rồi quay lại B3;
a) Xác định bài toán
-Input: Dãy A gồm n số nguyên
-Output: Tổng các số hạng lẻ trong A
b) Mô tả thuật toán
-Bước 1: Nhập n và nhập dãy số
-Bước 2: s←0; i←1;
-Bước 3: Nếu a[i] không chia hết cho 2 thì s←s+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 s
-Bước 7: Kết thúc
Bài 1. Bài toán và thuật toán (xác định bài toán, viết thuật toán): Cho dãy gồm N số nguyên a1,...,aN. a) Tính tổng các số hạng có giá trị chẵn/lẻ có trong dãy. b) Tính tổng các số hạng có vị trí chẵn/lẻ có trong dãy. c) Đếm các số hạng có giá trị chẵn/lẻ/bằng K có trong dãy.
Xây dựng thuật toán cho bài toán sau: Cho dãy A gồm N số nguyên a1,a2,...,aN và 1 số nguyên k cho trước. Đếm và đưa ra số lượng các ai = k. Mô phỏng thuật toán với 1 dãy số cụ thể.
VD: N=5, K=3, A1=2, A2=3, A3=3, A4=5, A5=6
i | 1 | 2 | 3 | 4 | 5 |
ai | 2 | 3 | 3 | 5 | 6 |
dem | 0 | 1 | 2 | 2 | 2 |
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;
}
cho N , 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 0
a) xác định input,output
b) viết thuật toán bằng phép liệt kê hoặc sơ đồ khối
c) hãy mô phỏng thuật toán với bộ dữ liệu sau:
-5,0,4,6,-8,0,6,12. và cho biết kết quả
#include <bits/stdc++.h>
using namespace std;
long long n,i,dem,x;
int main()
{
cin>>n;
dem=0;
for (i=1; i<=n; i++)
{
cin>>x;
if (x==0) dem++;
}
cout<<dem;
return 0;
}
Nhập vào dãy số nguyên N và dãy số a1, a2...aN. Hãy tính tổng các số trong dãy chia hết cho 3 b) xây dựng thuật toán c) mô phỏng thuật toán (chọn 10 giá trị bất kì )
#include <bits/stdc++.h>
using namespace std;
long long n,i,x,t;
int main()
{
cin>>n;
t=0;
for (i=1; i<=n;i++)
{
cin>>x;
if (x%3==0) t=t+x;
}
cout<<t;
return 0;
}