Admin Admin
Tổng số bài gửi : 84 Points : 117 Thanks : 0 Join date : 06/09/2011 Age : 31 Đến từ : Born From A Bombox
| Tiêu đề: Giải đệ quy quay lùi.. Sun Sep 11, 2011 10:26 am | |
| Câu hỏi :Xét xem 1 số có phải là số thuộc dãy fibonacci hay không và phân tích nó dưới dạng tổng của các số fibonacci !!! - Code:
-
//phan tich duoi dang tong cua cac so fibonacci co the trung nhau #include<stdio.h> #include<conio.h> int k,a[90],s,n,b[90]; void xetfibo(int p) { int t=2; n=2; b[0]=1; b[1]=1; while ((b[t-1]+b[t-2])<=p) {b[t]=b[t-1]+b[t-2]; t++; n++;} } void inkq(int x)
{ int j; printf("\n%d = %d ",k,a[1]); for(j=2;j<x;j++) printf("+ %d ",a[j]); } void tim(int i) { int j; if(s==k) inkq(i); else for(j=1;j<=k;j++) { xetfibo(j); if(b[n-1]==j) if(s+j<=k&&j>=a[i-1])//phan tich duoi dang cac so fibonacci khong trung nhau thi j>a[i-1] { s=s+j; a[i]=j; tim(i+1); s=s-j; } } } int main() { printf("nhap k= "); scanf("%d",&k); xetfibo(k); if(b[n-1]==k) { printf("%d la so thuoc day fibonacci ",k); } else printf("%d khong thuoc day fibonacci",k); a[0]=s=0; tim(1); getch(); return 0; } Nguồn..CĐCV |
|