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 ...
随机推荐
- JAVA进阶2
间歇性混吃等死,持续性踌躇满志系列-------------第2天 1.父类子类继承(注:一个JAVA源文件中只能有一个public类,public 类的名字必须和这个编译单元的文件名完全相同,包括大 ...
- 假设result 是一个float型变量,value是一个int型变量。执行以下赋值语句以后,变量value将是什么类型?为什么?
假设result 是一个float型变量,value是一个int型变量.执行以下赋值语句以后,变量value将是什么类型?为什么? 在执行这条语句的过程中,保存在vulue变量中的值被读取出来并转化为 ...
- 小玩意--自定义log记录
之前在帮TCL运维项目时,因某些原因,决定单就经销商相关业务中摒弃经典的log4j日志,改为每日自定义生成并写入相关日志,我遂写了一个util,代码如下:p.s.实现的思路很简单,仅为每次需要记录时, ...
- 核心编程9 文件和文件的输入输出 (os模块)
1 python内建函数open和file 文件打开方便读取:f = open('文件名','模式','缓冲模式') #'r'读取,'w'写入(先清空后创建).'a'追加 详情文件模 ...
- OVS-----CentOS7上搭建基于Open vSwitch的VxLAN隧道实验
一.关于VXLAN VXLAN 是 Virtual eXtensible LANs 的缩写,它是对 VLAN 的一个扩展,是非常新的一个 tunnel 技术,在Open vSwitch中应用也非常多. ...
- Netty实现简单UDP服务器
本文参考<Netty权威指南> 文件列表: ├── ChineseProverbClientHandler.java ├── ChineseProverbClient.java ├── C ...
- 【运维】Dell R710如何做Raid0与Raid5
[写在前面] 这次是在戴尔服务器R710上面尝试的做Raid0和Raid5,亲测成功. 因为创建Raid0与Raid5的方式是一样的,所以就以创建Raid5为例. 1, ...
- 基于React 的前端UI开发框架 及与Electron 的结合 https://cxjs.io/
1.cxjs 基于React 的前端UI开发框架 https://cxjs.io/ coreu http://coreui.io/ 2.antd-admin ...
- 使用sudo而无需输入密码的设置
在linux上,root用户是老大,什么事都能做.但是,很多时候由于安全等各种原因,我们不希望把root用户开放给大家,但是又希望其他的用户可以有root的权限,所以就有了sudo用户.而执行sudo ...
- csrfguard3.1 部署笔记
1:git clone 导入csrfguard 2:点击菜单栏View->Tool Windows->Maven projects 3:Lifecycle clean build 4:t ...