Death to Binary? POJ - 2116

原创 2018年04月16日 19:54:03

原oj点击打开链接

vj点击打开链接

 这个题 说实话 我wa 了很多发  wa到怀疑人生 好不容易看别人的代码  不wa了 结果 给我出来一个 Presentation Error(格式错误)    搞得我头皮 发麻  主要了解一下的就是 前面需要 的空格 以及 每行需要 最后答案的 长度 这个就可以了 具体的题意 谷歌一下就行 感觉这道题 有点逗 ~~~~

#include<stdio.h>
#include<iostream>
#include<string.h>
#include<algorithm>
#include<string>
#include<math.h>
using namespace std;
long long int mm[60];
string a,b,c;
long long int lena,lenb,suma,sumb,sumc,lenc;
void init()
{
    mm[0]=1,mm[1]=2;
    for(int i=2; i<=55; i++)
        mm[i]=mm[i-1]+mm[i-2];
}
long long int gett(long long int len,string t)
{
    long long int sum=0;
    for(int i=0; i<len; i++)
    {
        if(t[i]=='1')
        {
            sum+=mm[i];
        }
    }
    return sum;
}
void change(long long int aa,string &s)
{
    int i;
    for(i=50; i>=0; i--)
    {
        if(aa>=mm[i])
            break;
    }
    //printf("%d\n",i);
    for(int t=i;t>=0; t--)
    {
        if(aa>=mm[t])
            s+='1',aa-=mm[t];
        else
            s+='0';
    }
    if(i<0)
        s+='0';
}
int main()
{
    init();
    while(cin>>a>>b)
    {
        reverse(a.begin(),a.end());
        reverse(b.begin(),b.end());
        lena=a.size();
        lenb=b.size();
        lenc=lena+lenb;
        suma=gett(lena,a);
        sumb=gett(lenb,b);
        //printf("%d %d\n",suma,sumb);
        sumc=suma+sumb;
        a.clear();
        b.clear();
        change(suma,a);
        // printf("1\n");
        change(sumb,b);
        change(sumc,c);
        printf("  ");for(int i=0;i<c.size()-a.size();i++)printf(" ");cout<<a<<endl;
        printf("+ ");for(int i=0;i<c.size()-b.size();i++)printf(" ");cout<<b<<endl;
        printf("  ");for(int i=0; i<c.size(); i++)printf("-");printf("\n");
        printf("  "),cout<<c<<endl;
        printf("\n");
        a.clear();
        b.clear();
        c.clear();
    }
    return 0;
}

poj 2116 Death to Binary

传送门:点击打开链接DescriptionThe group of Absurd Calculation Maniacs has discovered a great new way how to c...
  • qq_35846109
  • qq_35846109
  • 2018年02月11日 15:47
  • 39

POJ 2116 Death to Binary?(模拟题)

题目链接: http://acm.hust.edu.cn/vjudge/contest/70017#problem/T 题目大意: 读入两个01串,分别表示两个数X,Y 比如1101001表示...
  • SD_Stjean
  • SD_Stjean
  • 2016年07月31日 16:47
  • 228

POJ 2116解题报告

Death to Binary? Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 1494 ...
  • u012294939
  • u012294939
  • 2015年02月27日 23:30
  • 509

POJ&nbsp;2116

题意:以二进制的形式给出一串数列(例:11101),要求按照斐波那契数列的规律化为10进制,斐波那契数列1,2,3,5,8,13,21···,其标号分别为F0,F1,F2,F3···,化为十进制:1*...
  • dawayangzen
  • dawayangzen
  • 2013年06月10日 12:29
  • 794

Death to Binary?

该题主要是。将求出的结果(N)换算为没有连续1的串,从高位到低位寻找,找到第一个小于等于N的位置即为最后字符的长度,继续向前遍历组成N,位置赋值为 1 ,就将该数(Fn(i))从N中减去,直至遍历完成...
  • qq_34016712
  • qq_34016712
  • 2017年10月13日 18:36
  • 42

POJ1228(稳定凸包问题)

题目:Grandpa's Estate   题意:输入一个凸包上的点(没有凸包内部的点,要么是凸包顶点,要么是凸包边上的点),判断这个凸包是否稳定。所谓稳 定就是判断能不能在原有凸包上加点,得到一个更...
  • ACdreamers
  • ACdreamers
  • 2013年08月17日 14:22
  • 4260

poj刷题目录

转载出处http://blog.csdn.net/lyy289065406/article/details/6642573(很感谢 優YoU 这位大牛列这个清单而且有代码解释好好刷吧,点进题号就有代码...
  • small__snail__5
  • small__snail__5
  • 2016年09月13日 16:42
  • 8557

android WIN DEATH

http://blog.sina.com.cn/s/blog_46846ade0101cixq.html
  • u012587637
  • u012587637
  • 2014年10月29日 16:28
  • 2565

Death to Binary? (模拟)题解

思路:除去前导0,注意两个1不能相邻(11-&gt;100),注意 0 *** 或者*** 0或者0 0情况用string的reverse()很舒服代码:#include&lt;cst...
  • qq_14938523
  • qq_14938523
  • 2018年04月06日 17:22
  • 10

POJ 2499 Binary Tree 数学题解

本题名为二叉树,其实主要是考数学加速计算的方法。 本题思路最简单就是从目标节点往根节点查找,那么效率就等于树高了; 不过由于树高可能会极大,故此这样查找会超时。 那么就在查找根节点的时候,把题目的+-...
  • kenden23
  • kenden23
  • 2014年12月06日 10:21
  • 1650
收藏助手
不良信息举报
您举报文章:Death to Binary? POJ - 2116
举报原因:
原因补充:

(最多只允许输入30个字)