suphukaman
New member
- Xu
- 0
Điên đầu với bài này. Ở bài này, nếu mình nhập giá trị cho phần tử thứ nhất là 1 (các phần tử sau khác 1) thì nó sẽ xuất ra là : 1 và các số khác thuộc fibonaci (khác 1). Nhưng nếu nhập 1 vào phần tử thứ nhất và nhập 1 vào bất kỳ các phần tử sau thì nó sẽ xuất ra: 1 (đầu tiên) và các phần tử thuộc fibonaci (khác 1 @@). Nghĩa là từ phần tử thứ 2 trở đi nếu nhập là 1 thì nó không chịu xuất 1, phải là phần tử đầu tiên nhập 1 nó mới xuất. Các bạn xem qua code của mình nè, sai chỗ nào chỉ gấp cái nhé. Mà nói chung nó bị lỗi lúc xuất, lúc không xuất, chắc sai code @@
-------------------------------
#include<iostream>
using namespace std;
void main ()
{
int a[100],n,max,f1 = 0,f2 = 1,fi;
cout<<"Nhap vao so luong phan tu mang\n";
cin>>n;
while (n <= 0);
for (int i = 0 ; i < n ; i++)
{
cout<<"Gia tri thu "<<i + 1<<"\n";
cin>>a;
}
cout<<"\n";
cout<<"Phan tu trong mang thuoc day Fibonacy la: \n";
for (int j = 0 ; j < n ; j++)
{
max = a[0];
if (max < a[j]) max = a[j];
do
{
fi = f1 + f2;
f1 = f2;
f2 = fi;
if (a[j] == fi) cout<<a[j]<<" ";
}
while (fi < max);
}
cout<<"\n";
}
-----------------------
-------------------------------
#include<iostream>
using namespace std;
void main ()
{
int a[100],n,max,f1 = 0,f2 = 1,fi;
cout<<"Nhap vao so luong phan tu mang\n";
cin>>n;
while (n <= 0);
for (int i = 0 ; i < n ; i++)
{
cout<<"Gia tri thu "<<i + 1<<"\n";
cin>>a;
}
cout<<"\n";
cout<<"Phan tu trong mang thuoc day Fibonacy la: \n";
for (int j = 0 ; j < n ; j++)
{
max = a[0];
if (max < a[j]) max = a[j];
do
{
fi = f1 + f2;
f1 = f2;
f2 = fi;
if (a[j] == fi) cout<<a[j]<<" ";
}
while (fi < max);
}
cout<<"\n";
}
-----------------------