P1755 斐波那契的拆分
来源:互联网 发布:廖雪峰java 编辑:程序博客网 时间:2024/06/07 06:18
题目背景
无
题目描述
已知任意一个正整数都可以拆分为若干个斐波纳契数,现在,让你求出n的拆分方法
输入输出格式
输入格式:
一个数t,表示有t组数据
接下来t行,每行一个数n(如题)
输出格式:
t行,每行一个字符串,表示拆分方法(格式:n=a1+a2+a3+..+an),要求从小到大输出
输入输出样例
输入样例#1: 复制
input1:1
1
input2:1
10
输出样例#1: 复制
output1:1=1;
output2:10=2+8;
说明
若有多组数据,以个数最小的为准,若仍有多组,输出右边尽量大的一组
对于100%的数据 t<=1000 1<=n<=10^9
从大到小
#include<iostream>#include<cstdio>using namespace std;int a[60],i,j,x,t,tot,pd,b[60],all;//B数组用于记录void work(int k)//暴搜{ if(k==0) { pd=1; return; } for(int i=all;i>=1;i--) { while(k-a[i]>=0) { k-=a[i]; b[++tot]=a[i]; work(k); if(pd==1) return; tot--; k+=a[i]; } }}int main(){ a[1]=1;a[2]=2;i=3; while(a[i-1]<=1e9)//预处理兔子数列 { a[i]=a[i-1]+a[i-2]; i++; }all=i-1; scanf("%d",&t); for(i=1;i<=t;i++) { scanf("%d",&x); pd=0; cout<<x<<"="; work(x); for(j=tot;j>=2;j--) { cout<<b[j]<<"+"; b[j]=0; } cout<<b[1]<<endl; b[tot]=0;//初始化 tot=0;//初始化 }}
阅读全文
0 0
- P1755 斐波那契的拆分
- 洛谷 P1755 斐波那契的拆分
- 洛谷 P1755 斐波那契的拆分
- [斐波那契拆分 乱搞 数学] 51Nod 1350 斐波那契表示
- 斐波那契堆的实现
- 有趣的斐波那契数列
- 斐波那契函数的优化
- 斐波那契的递归算法
- 斐波那契数列的解法?
- 斐波那契数列的应用
- 斐波那契数列的打印
- 斐波那契数列的神奇
- 巧妙的斐波那契
- 斐波那契数列的
- nefu 斐波那契的整除
- 斐波那契的整除nefu115
- 斐波那契数列的性质
- 斐波那契数列的计算
- 计算机视觉
- Danil and a Part-time Job codeforces dfs序,线段树
- 进程、信号
- 最常见的英文写作问题
- 小甲鱼学python之序列
- P1755 斐波那契的拆分
- id ma s2h
- 使用SwitchyOmega设置Chrome代理
- 百度阿波罗计划是什么?
- 51单片机做的74HC595驱动控制LED
- SQL Server触发器创建、删除、修改、查看
- Qt资源帖
- Vijos 3190 逃学的代价
- LeetCode 55. Jump Game & 45. Jump Game II题解