Bài về nhà SFIT 02
Problems
Problem | Points | AC Rate | Users |
---|---|---|---|
Kiểm tra một dãy số nguyên có là dãy cấp số cộng hay không | 1 | 37.9% | 301 |
Trung bình cộng và trung bình nhân | 1 | 29.9% | 374 |
0.Tìm giá trị lớn nhất và tính tổng | 2 | 19.8% | 653 |
0.Số hoàn hảo | 1p | 11.1% | 234 |
Tính chất đơn điệu của dãy số | 2 | 33.0% | 279 |
Comments
Cuộc thi tạo ra chủ yếu cho các bạn ôn viết hàm, con trỏ, cấp phát bộ nhớ, rèn luyện kĩ năng lập trình. Nhiều bạn vẫn viết trong main :))
include <bits/stdc++.h>
using namespace std;
int main() { int a[100], n; cin >> n; for(int i = 0; i < n; i++) cin >> a[i]; int dem1 = 0, dem2 = 0, dem3 = 0; for(int i = 0; i < n - 1; i++){ if(a[i + 1] > a[i]){ dem1++; }else if(a[i + 1] < a[i]){ dem2++; }else dem3++; }
if(dem1 == n-1) cout << "Day don dieu tang ngat"; else if(dem3 + dem1 == n-1) cout << "Day don dieu tang"; else if(dem2 == n-1) cout << "Day don dieu giam ngat"; else if(dem2 + dem3 == n-1) cout << "Day don dieu giam"; else if(dem3 == n-1) cout << "Day bang nhau"; else cout << "Day khong don dieu"; } // code toàn bị TLE :((
Ông thử tăng mảng lên a[1001] xem chạy được ko
Chạy được rồi cảm ơn ông nhé
include<iostream>
using namespace std; int main(){ int n,i,j; long long *a,t; cin>>n; a=new long long [n+1]; for( i=0;i<n;i++){ cin>>a[i]; } for( i=0;i<n;i++){ t=0; for( j=1;j<a[i];j++){ if(a[i]%j==0){ t+=j; }} if(t==a[i]){ cout<<a[i]<<" eh perfeito"; cout<<endl; } else{ cout<<a[i]<<" nao eh perfeito"; cout<<endl; } } }
Làm kiểu này TLE đấy bạn ơi
mình làm hết sức rồi bạn có file ko tie cho mình xin đi
include <bits/stdc++.h>
using namespace std; long tongcacuoc(long n) { long p[100000],m[100000],u=0,v=0,s=1,k,a; a=n; for(int i=2;ii<=n;i++){ if(n%i==0){ int dem=0; while(n%i==0){ dem++; n/=i; } p[++u]=i; m[++v]=dem; } } if(n!=1) p[++u]=n,m[++v]=1; for(k=1;k<=u;k++) s=s((pow(p[k],m[k]+1)-1)/(p[k]-1)); return s-a; } int main(){ long i,test,a; scanf("%ld",&test); for(i=1;i<=test;i++){ scanf("%ld",&a); if(tongcacuoc(a)==a) printf("%ld eh perfeito\n",a); else printf("%ld nao eh perfeito\n",a); }
} Mình cùng công thức tính tổng ước bạn ơi,trên mang có công thức nhá
Còn đây là cách bình thường https://www.geeksforgeeks.org/perfect-number/
Đây là cách siêu việt nhé ông https://www.basic-mathematics.com/perfect-number.html#:~:text=A%20number%20is%20perfect%20if,exception%20of%20the%20number%20itself.&text=If%20the%20sum%20of%20the,18%20is%20a%20perfect%20number.
siêu việt này thì lại dở r @@@
Cách này cam đoan 100 test trong 0.01s nha =))
đi thi sao nhớ đc mấy cái này mà viết @@@