zoukankan      html  css  js  c++  java
  • 9.15 | 学习笔记

    1.n进制小数转化为十进制小数

    上大神代码,仅供记录(作者博客链接在下面,转载请注明出处),是目前看到的最棒的版本

    #include<bits/stdc++.h>
    using namespace std;
    const int N=1005;
    int t,i,j,k,n,tmp;
    char str[N];
    char dest[N];
    void turn(char* str,int n)
    {
        memset(dest,0,sizeof(dest));
        int len=strlen(str);
        for(i=len-1; i>1; i--)
        {
            int num=str[i]-'0';
            for(j=0;j<k||num!=0;j++)
            {
                tmp=10*num+(j<k?dest[j]-'0':0);
                dest[j]=tmp/n+'0';
                num=tmp%n;
            }
            k=j;
        }
        printf("0.%s
    ",dest);
    }
    
    int main()
    {
        cin>>str>>n;
        turn(str,n);
        return 0;
    }

    这段代码转载自

    https://blog.csdn.net/ACdreamers/article/details/9037763

    2.昨天做过波兰表达式以后,今天靠着数据结构教程,终于把中缀表达式搞了出来,过程极其艰难,幸亏这题数据开放,完全是卡着点改代码......

    两个重点思路:

    1)利用栈的思想,按照优先级压入运算符,如果当前优先级低于栈顶,把栈顶输出,最后压入;

    2)个人认为比较重要的一个坑,就是这个题目只涉及到了四种基本双目运算符,所以会出现减号还是负号的问题,

    这里我的解决办法是检查得到的后缀表达式,如果符号是'-'且是表达式中第一个字符,或者它前面的前面不是数字而是运算符,说明这里是负号,

    可以利用-a=0-a直接把0压入存数字的栈

  • 相关阅读:
    codeforces 269B Greenhouse Effect
    codeforces 5C Longest Regular Bracket Sequence
    codeforces 225C Barcode
    codeforces 279C Ladder
    CodeForces 479E Riding in a Lift
    CodeForces 351A Jeff and Rounding
    POJ-1579-201308122106.txt
    表达式求值-201308081712.txt
    Encoding-201308072147.txt
    A + B Problem II201308072001.txt
  • 原文地址:https://www.cnblogs.com/MissCold/p/11525171.html
Copyright © 2011-2022 走看看