Cho số nguyên dương N và dãy số nguyên a1,a2,…,aN. Tính tổng của các số dương trong dãy số trên. (2đ)
a. Xác định input và output ?
b. Xây dựng thuật toán cho bài toán trên bằng phương pháp liệt kê (hoặc sơ đồ khối)?
c. Mô phỏng thuật toán với ví dụ dưới đây: Với N =
i | ||||||||
ai | 3 | -4 | 6 | -5 | -12 | 7 | 0 | 8 |
Tổng |
Cho dãy A gồm N số nguyên tử A1,A2,...An.Hãy tính tổng các phần tử chia hết cho 3 trong dãy A.Viết thuật toán giải bài toán trên bằng cách liệt kê.
Thuật toán
-Bước 1: Nhập dãy số
-Bước 2: t←0; i←1;
-Bước 3: Nếu a[i] mod 3=0 thì 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
-Bước 7: Kết thúc
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;
}
Em hãy mô tả thuật toán bằng cách liệt kê hoặc sơ đồ khối để giải bài toán sau
“Cho dãy số nguyên gồm N phần tử : A1, A2.... An, đếm xem có bao nhiêu số nguyên âm có trong dãy”.
#include <bits/stdc++.h>
using namespace std;
long long x,i,n,dem;
int main()
{
cin>>n;
dem=0;
for (i=1; i<=n; i++)
{
cin>>x;
if (x<0) dem++;
}
cout<<dem;
return 0;
}
Bài 1. Cho số nguyên dương N, dãy các số nguyên dương a1, a2, a3,…,aN và một số nguyên dương x. Trình bày thuật toán kiểm tra xem số x có trong dãy hay không? (có thể trình bày thuật toán dưới dạng liệt kê hoặc sơ đồ khối).
Giả sử có dãy số: a1, a2, a3, a4. Trong đó:
- a1: là ngày sinh của học sinh.
- a2: là tháng sinh của học sinh.
- a3: là năm sinh của học sinh.
- a4: là số 2021.
- x: là số 15.
Hãy trình bày các bước để kiểm tra x có trong dãy a1, a2, a3, a4 hay không?
Ví dụ: học sinh sinh ngày 18/05/2005 thì cần trình bày các bước để kiểm tra số 15 có trong dãy số 18, 5, 2005, 2021 hay không?
#include <bits/stdc++.h>
using namespace std;
long long a[4],n,x;
int main()
{
cin>>n>>x;
for (i=1; i<=n; i++) cin>>a[i];
for (i=1; i<=n; i++)
if (a[i]==x)
{
cout<<"YES";
break;
}
cout<<"NO";
return 0;
}
Xây dựng thuật toán cho bài toán sau: cho 1 số nguyên dương N và dãy số nguyên A: a1,a2…aN. Hãy tính: a) Tổng các phần tử có giá trị dương: a1+a3+a5+a7 b) đếm xem trong dãy A có bao nhiêu phần tử có giá trị
a: #incldue <bits/stdc++.h>
using namespace std;
long long i,n,x,t;
int main()
{
cin>>n;
t=0;
for (i=1; i<=n; i++)
{
cin>>x;
if (x>0) t=t+x;
}
cout<<t;
return 0;
}
Cho dãy số n số nguyên dương a1,a2,...,an. Hãy tìm hai số ai,aj sao cho i khác j và ai+aj đạt max. Xây dựng thuật toán bằng sơ đồ khối hoặc liệt kê cho bài toán trên.
cho N và dãy nguyên dương a1,a2,...,aN và một số nguyên dương x. hãy tính tổng các số hạng có giá trị bé hơn x trong dãy
Hãy giải bài toán bằng cách liệt kê và sơ đồ khối
#include <bits/stdc++.h>
using namespace std;
long long x,i,n,t,a;
int main()
{
cin>>n>>x;
t=0;
for (i=1; i<=n; i++)
{
cout<<a;
if (a<x) t=t+a;
}
cout<<t;
return 0;
}