用互不相同的fib数列的数分解任意整数。

用互不相同的fib数列的数分解任意整数。,第1张

概述==用互不相同的fib数列的数分解任意整数。== #include<bits/stdc++.h>using namespace std;#define int long long#define rep(i,a,b) for(int i=(a);i<=(b);++i)#define dwn(i,a,b) for(int i=(a);i>=(b);--i)template <typename

==用互不相同的fib数列的数分解任意整数。==

#include<bits/stdc++.h>using namespace std;#define int long long#define rep(i,a,b) for(int i=(a);i<=(b);++i)#define DWn(i,b) for(int i=(a);i>=(b);--i)template <typename T>inline voID rd(T &x){    x=0;char c=getchar();int f=0;    while(!isdigit(c)){f|=c=='-';c=getchar();}    while(isdigit(c)){x=(x<<1)+(x<<3)+(c^48);c=getchar();}    x=f?-x:x;}#define mem(a,b) memset(a,b,sizeof(a))#define ee(i,u) for(int i=head[u];i;i=e[i].next)int n;bool first=0;inline int find(int x){    int a=1,b=1,c;    do{        c=a+b;        a=b,b=c;    }while(b<x);    if(b==x)return b;    else return a;}inline voID print(int x){    int a=find(x);//小于等于x的最大的fib数    if(first){        printf("%d",a);        first=0;    }    else         printf("+%d",a);    if(a<x)        print(x-a);}#undef int int main(){#define int long long    rd(n);//    n=36;    first=1;    cout<<n<<"=";    print(n);    return 0;}

/*

36

*/

/*

36=34+2

*/

总结

以上是内存溢出为你收集整理的用互不相同的fib数列的数分解任意整数。全部内容,希望文章能够帮你解决用互不相同的fib数列的数分解任意整数。所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/1210550.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-04
下一篇 2022-06-04

发表评论

登录后才能评论

评论列表(0条)

保存