đề bài: Ma trận xoáy ốc Fibonacci cấp N là ma trận vuông có N*N phần tử trong đó các số Fibonacci được điền vào ma trận theo chiều kim đồng hồ (bắt đầu từ số 1).
inout n=3;
ouput:
1 1 2
21 34 3
13 8 5
ý tưởng của em là in ma trận xoắn ốc vuông cấp n với gtri m tăng tương ứng (m từ 1 đến n*n).mọi người xem giúp e sai gì với ạ.em cám ơn
#include<iostream>
using namespace std;
int n,a[100][100];
int gtr(int n) {
if (n==1 || n==2) return 1;
int f1=1;
int f2=1;
int fn;
for(int i=3;i<=n;i++) {
fn=f1+f2;
f1=f2;
f2=fn;
}
return fn;
}
void conduct() {
int m=1;
while(m<=n*n) {
int hang;
hang=n-1;
int cot=n-1;
int d=0;
while(d<=n/2) {
for(int i=d;i<=cot;i++) {
a[d][i]=gtr(m++);
}
for(int i=d+1;i<=hang;i++) a[i][cot]=gtr(m++);
for(int i=cot-1;i>=d;i--) a[hang][i]=gtr(m++);
for(int i=hang-1;i>d;i--) a[i][d]=gtr(m++);
hang--;
cot--;
d++;
}
m++;
}
}
void result() {
for(int i=0;i<n;i++) {
for(int j=0;j<n;j++) {
cout<<a[i][j];
}
cout<<endl;
}
}
int main() {
int T;
cin>>T;
for(int i=1;i<=T;i++) {
int n;
cin>>n;
cout<<"Test "<<i<<": ";
gtr(n);
conduct();
result();
}
}
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?