poj2116 模拟题
不知道错在哪里
/*
给定两个斐波那契表示数,要求用标准化表达方式表达
然后将这两个数加起来,和也用标准化方式表达
思路:显然要将这两个数先用十进制表示,和也用十进制表示
然后在转化成二进制即可
1 1 2 3 5 8 13 21 34
用贪心法能保证1不连续
*/
#include<iostream>
#include<cstring>
#include<cstdio>
#define ll long long
using namespace std;
ll f[],a,b,c;
char buf[],s1[],s2[];
void init(){
f[]=;f[]=;
for(int i=;i<=;i++)
f[i]=f[i-]+f[i-];
} int ans1[],ans2[],ans3[],len1,len2,len3;
void solve(ll a,int *ans){//把a分解成斐波那契数列
for(int i=;i>=;i--){
if(a==) ans[-i]=;
else if(a>=f[i]){
ans[-i]=;
a-=f[i];
}
else ans[-i]=;
}
} int main(){
init();
while(scanf("%s %s",s1,s2)==){
memset(ans1,,sizeof ans1);
memset(ans2,,sizeof ans2);
memset(ans3,,sizeof ans3);
a=b=c=;
int Len1=strlen(s1);
int Len2=strlen(s2); for(int i=;i<Len1;i++)
a+=(s1[i]-'')*f[Len1-i];
for(int i=;i<Len2;i++)
b+=(s2[i]-'')*f[Len2-i]; c=a+b;
solve(a,ans1);
solve(b,ans2);
solve(c,ans3); /*for(int i=0;i<=39;i++)cout<<ans1[i];
puts("");
for(int i=0;i<=39;i++)cout<<ans2[i];
puts("");
for(int i=0;i<=39;i++)cout<<ans3[i];
puts("");*/ len1=len2=len3=;
while(ans1[len1]==)
len1++;
while(ans2[len2]==)
len2++;
while(ans3[len3]==)
len3++;
printf(" ");
for(int i=len3;i<len1;i++)
printf(" ");
for(int i=len1;i<=;i++)
printf("%d",ans1[i]);
puts(""); printf("+ ");
for(int i=len3;i<len2;i++)
printf(" ");
for(int i=len2;i<=;i++)
printf("%d",ans2[i]);
puts(""); printf(" ");
for(int i=len3;i<=;i++)
printf("-");
puts(""); printf(" ");
for(int i=len3;i<=;i++)
printf("%d",ans3[i]); puts("");
puts("");
}
return ;
}
poj2116 模拟题的更多相关文章
- poj 1008:Maya Calendar(模拟题,玛雅日历转换)
Maya Calendar Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 64795 Accepted: 19978 D ...
- poj 1888 Crossword Answers 模拟题
Crossword Answers Time Limit: 1000MS Memory Limit: 30000K Total Submissions: 869 Accepted: 405 D ...
- CodeForces - 427B (模拟题)
Prison Transfer Time Limit: 1000MS Memory Limit: 262144KB 64bit IO Format: %I64d & %I64u Sub ...
- sdut 2162:The Android University ACM Team Selection Contest(第二届山东省省赛原题,模拟题)
The Android University ACM Team Selection Contest Time Limit: 1000ms Memory limit: 65536K 有疑问?点这里 ...
- 全国信息学奥林匹克联赛 ( NOIP2014) 复赛 模拟题 Day1 长乐一中
题目名称 正确答案 序列问题 长途旅行 英文名称 answer sequence travel 输入文件名 answer.in sequence.in travel.in 输出文件名 answer. ...
- UVALive 4222 Dance 模拟题
Dance 题目连接: https://icpcarchive.ecs.baylor.edu/index.php?option=com_onlinejudge&Itemid=8&pag ...
- cdoj 25 点球大战(penalty) 模拟题
点球大战(penalty) Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://acm.uestc.edu.cn/#/problem/show/2 ...
- Educational Codeforces Round 2 A. Extract Numbers 模拟题
A. Extract Numbers Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/600/pr ...
- URAL 2046 A - The First Day at School 模拟题
A - The First Day at SchoolTime Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://acm.hust.edu.cn/vjudg ...
随机推荐
- linux switch 跳转到 ”跳转至 case 标号“ 的错误
参考链接: http://blog.csdn.net/qustdjx/article/details/8636489
- linux 用户管理命令
- AIDL通信过程中设置死亡代理
关于AIDL的使用参考学习: https://blog.csdn.net/u011240877/article/details/72765136 https://blog.csdn.net/iromk ...
- 【编程拾遗】C++的static成员函数与单例模式
static小结 static的引入 static 是C++中非经常常使用的修饰符,它被用来控制变量的存储方式和可见性. 函数内部定义的变量,在程序运行到它的定义处时,编译器为它在栈上分配空间,函数在 ...
- java中equals,hashcode和==的区别
https://www.cnblogs.com/kexianting/p/8508207.html
- [Kubernetes]如何使用yaml文件使得可以向外暴露服务
最近因为项目需要上线,所以这段时间都扑到了Kubernetes上面. 昨天老大交代了一个任务,大概就是这样的: 看起来挺简单的,因为相关文件都给我了,我以为直接把文件拖上去,然后在访问ip:port方 ...
- 【运维】略谈Raid级别
*何为Raid? Raid就是磁盘阵列(Redundant Arrays of Independent Disks,RAID),有"独立磁盘构成的具有冗余能力的阵列&quo ...
- VDB R&D
VDB Data value visualize: 结论从houdini得知. API常用文字: interior:内部 Narrow-band:窄带 background:窄带外 SDF: XY p ...
- [转]python3之os与sys模块
转自:https://www.cnblogs.com/zhangxinqi/p/7826872.html#_label8 阅读目录 一.Python os模块 1.os.access() 2.os.c ...
- VC常用小知识
(1) 如何通过代码获得应用程序主窗口的 指针?主窗口的 指针保存在CWinThread::m_pMainWnd中,调用AfxGetMainWnd实现.AfxGetMainWnd() ->Sho ...