如:
45=34+8+3
#include<stdio.h>
#include<math.h>
#include<malloc.h>
int table[30];
typedef struct node
{
int res[30];
int len;
int data;
struct node *next;
}node;
void init_table()
{
int i;
table[1]=1;
table[2]=1;
for(i=3;i<30;i++)
{
table[i]=table[i-1]+table[i-2];
}
}
void compute_res(node *p)
{
int i,n;
n=p->data;
p->len=0;
for(i=30-1;i>=0;i--)
{
if(table[i]<=n&&n!=0)
{
p->res[p->len++]=table[i];
n=n-table[i];
}
}
};
void init_node(node **head,node **tail,node *p)
{
if(*head==NULL)
{
*head=p;
*tail=p;
}
else
{
(*tail)->next=p;
*tail=p;
}
};
void print(struct node *h)
{
w