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 ...
随机推荐
- (1)Java数据结构--图文并茂-分析优缺点
转:常见Java数据结构&优缺点 - /画家/ - 博客园http://www.cnblogs.com/earl-yongchang/p/5639161.html 图片也是引用过来的,没有重新 ...
- 51NOD 数字1的数量
题目描述: 给定一个十进制正整数N,写下从1开始,到N的所有正数,计算出其中出现所有1的个数. 例如:n = 12,包含了5个1.1,10,12共包含3个1,11包含2个1,总共5个1. Input ...
- thymeleaf资源加载问题(从Controller跳转)
<!DOCTYPE html> <html xmlns:th="http://www.thymeleaf.org"> <head> <me ...
- shell编程 之 引号、括号的用法总结
1 单引号 a=1 b='a string' 单引号屏蔽各种特殊字符.echo ‘$a " % \n ' 只能得到 $a " % \n 单引号可以指明界限,防止由分隔符----空格 ...
- 类ThreadLocal的使用与源码分析
变量值的共享可以使用public static的形式,所有的线程都使用同一个变量.如果每个线程都有自己的共享变量,就可以使用ThreadLocal.比如Hibernat的session问题就是存在Th ...
- python 彩色日志配置
import os import logging import logging.config as log_conf import datetime import coloredlogs log_di ...
- lnmp 搭建 初试
#初始化环境检查 # uname -r -.el6.x86_64 # uname -m x86_64 #添加mysql用户 useradd -s /sbin/nologin mysql -M #下载安 ...
- .NET之美 第一部分C#语言基础
第一章 类型基础 1 值类型与引用类型 CLR 支持两种类型:值类型和引用类型, C#的所有值类型均隐式派生自System.ValueType: 结构体:struct(直接派生于System.Valu ...
- 2-HTML Text Formatting Elements
下表列举了文字格式常见的关键字 Tag Description <b> Defines bold text <em> Defines emphasized text < ...
- postgresql 触发器 更新操作
1 前言 功能需求:当一张表格某个字段变化,另一张表某个字段写入该值 2 代码 CREATE OR REPLACE FUNCTION "public"."synStatu ...