Viết giải thuật tính trung bình cộng của một dãy bất kỳ có n số và đánh giá độ phức tạp của thuật toán
Hãy nhập câu hỏi của bạn vào đây, nếu là tài khoản VIP, bạn sẽ được ưu tiên trả lời.
Đánh giá được mức đơn giản của thuật toán, từ đó tìm ra được cách giải nhanh nhất.
#include <bits/stdc++.h>
using namespace std;
long long n,i,dem,a[10000];
//chuongtrinhcon
bool ktnt(long long n)
{
for (int i=2; i*i<=n; i++)
if (n%i==0) return(false);
return(true);
}
//chuongtrinhchinh
int main()
{
cin>>n;
dem=0;
for (i=1; i<=n; i++)
{
cin>>a[i];
if (a[i]>1 && (ktnt(a[i])==true)) dem++;
}
cout<<dem;
return 0;
}
#include <bits/stdc++.h>
using namespace std;
long long n,i,x,t,dem;
int main()
{
cin>>n;
dem=0;
t=0;
for (i=1; i<=n; i++)
{
cin>>x;
if (x%2!=0)
{
dem++;
t=t+x;
}
}
double s=t*1.0/dem*1.0;
cout<<fixed<<setprecision(2)<<s;
return 0;
}
#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;
}
Y tưởng : xét từng số hạng trong dãy nếu số hạng > 0 thì xếp vào một biến tổng rồi chia cho số hàng đã xếp được
Input : Dãy A gồm N số nguyên a1....aN;
Output : Trung bình cộng của các số dương;
B1 : Nhập N số nguyên a1.... aN;
B2 : TB <--- 0, dem <---- 0, i <---- 1, Tong <--- 0;
B3 : Nếu a[i] > 0 thì Tong <--- TB + a[i];
B4 : dem <--- dem + 1;
B5 : Nếu i > N thì đưa ra màn hình kết quả TB = Tong/Dem rồi kết thúc chương trình;
B 6 : i <--- i + 1 rồi quay lại B3;
program Trung_Binh_Cong;
uses crt;
var t1,t2,t3,t4,tong: real;
begin
clrscr;
write('nhap so thu nhat =');
readln(t1);
write('nhap so thu hai =');
readln(t2);
write('nhap so thu ba =');
readln(t3);
write('nhap so thu tu =');
readln(t4);
tong:=t1+t2+t3+t4;
write('Trung binh cong cua 4 so = ' ,tong div 4);
readln;
end.
Program TB_Cong_4_So;
uses crt;
Var a, b, c, d: real;
Begin
Clrscr;
Write('Nhap so thu nhat:');readln(a);
Write('Nhap so thu hai:');readln(b);
Write('Nhap so thu ba:');readln(c);
Write('Nhap so thu tu:');readln(d);
Writeln('Trung binh cong: ',(a+b+c+d)/4);
Readln;
End.
#include <bits/stdc++.h>
using namespace std;
long long n,i,dem;
double d[10000];
int main()
{
cin>>n;
for (i=1; i<=n; i++)
cin>>d[i];
dem=0;
for (i=1; i<=n; i++)
if (d[i]<5) dem++;
cout<<dem;
return 0;
}
tính E(300)=300/log2(300), E(90000)=90000/log2(90000)
Vì độ hiệu quả tỉ lệ thuận với thời gian thực hiện
nên ta có tỉ số 0,02/E(300)=x/E(90000) (x là giá trị cần tìm).
Từ đó tính được x=3