UVa Live-3357 Pinary(斐波那契+找规律)
来源:互联网 发布:小米6陶瓷 知乎 编辑:程序博客网 时间:2024/06/07 10:30
#include<iostream>#include<cstring>#include<cmath>#define MAX 90000000+1using namespace std;int main(){int T;long long k;long long fac[47];long long sum[47];fac[0]=fac[1]=1;sum[0]=1;sum[1]=2;for(int i=2;i<=40;i++){fac[i]=fac[i-1]+fac[i-2];sum[i]=sum[i-1]+fac[i];}cin>>T;while(T--){cin>>k;int time=0;int g=0;int flag=0,flag2=1,all=0;while(k>0){for(int i=0;i<50;i++){if(sum[i]>=k){flag=i+1;if(flag2) all=flag;//all记录原始长度flag2=0;break;}}for(int i=1;i<g-flag;i++){ cout<<"0"; time++;} cout<<"1";time++;k=k-1-sum[flag-2];g=flag;}if(time!=all){for(int i=1;i<=all-time;i++) cout<<"0";//最后补上0}cout<<endl;}return 0; }
比如k=31(1010010),对应着7位,先输出1,然后k缩减至10(10010),对应着5位,于是输出1个0(7-5-1);然后再输出1,k继续缩减至2(10),对应着2位,于是输出2个0(5-2-1);然后再输出1,此时k=0了 可以用一个all保存原始位数的长度,然后用time表示我们已经处理的位数,即每次输出或0后,time++,最后剩余的位数all-time用0补完
0 0
- UVa Live-3357 Pinary(斐波那契+找规律)
- Uva 1350 - Pinary 解题报告(斐波那契+二分)
- 找规律,数学(巨大的斐波那契数列,uva 11582)
- hdu3054(斐波那契。。。。找规律)
- 51nod-斐波那契表示(找规律)
- hdu1021新版斐波那契避免超时找规律
- hdu 1021 斐波那契2,找规律
- 找规律 51Nod1350 斐波那契表示
- nefu 115 斐波那契的整除 找规律
- 51nod1350 斐波那契表示 找规律+递归
- hpuoj【1444】斐波那契数列&& 【找规律】
- HDU 5914 Triangle【斐波那契 找规律】
- HDU 5620 KK's Steel(找规律,斐波那契数列的应用)
- 51nod 1350 斐波那契表示(打表+找规律)
- HDU 4549 M斐波那契数列 (找规律+矩阵快速幂+数快速幂)
- 51NOD 1491 黄金系统 && Codeforces 458 A. Golden System(斐波那契数列 + 找规律)
- Codeforces Round #382 (Div. 2) -- C. Tennis Championship (数学找规律 -- 斐波那契数列)
- hdu2516 取石子游戏-----找规律 必败点---斐波那契数列
- Servlet详解
- 书单
- 34. Search for a Range && 35. Search Insert Position
- error C2039: "nocreate": 不是"std::basic_ios<char,std::char_traits<char>>
- C#114课的主要内容
- UVa Live-3357 Pinary(斐波那契+找规律)
- Android的轻量级指针原理与使用
- hdu5919 主席树求区间不同数
- git 使用图解收藏
- STM32F407(3)
- 一,ES6新增let关键字使用方法
- mv操作的机制
- 关于学习c++和编程的50个观点
- MATLAB绘制B样条曲线