Kai’blog

主博客 | 势利纷华,近之而不染者洁,不近者亦洁,君子不立危墙之下。

随手写的小东西

前言

我的新博客刚刚注册,阅读量不大,阅读量的增幅可以很好的反应我的新博客的发展速度,于是我常把每一篇博文的阅读量累加起来(心算),但是,一天我突然蛋疼的醒悟了——每秒能进行数十亿次运算的计算机在一个程序员面前,而这个蒟蒻程序员(我)竟然在用他那半生锈心算加法?!!固然可以用计算机自带的计算器,一个一个的输入数据,大约一分钟就能输入完毕,并立刻计算完毕,但是——作为一个程序员竟然还要手动输入数据?!对于只会使用电脑的人来说,这个麻烦是无论如何省不了的,但对于我来说,不过就是自己开发一个小程序的事儿(实际上足足用了本蒟蒻半个小时),于是我打算自己设计一个程序,可以帮我计算总阅读量。

Code1.0

编译后的.exe文件的同一目录下创建一个名为“拱大垲专用运算软件输入”的文本文件,将数字放入文本文件中,务必用时间去除所有的非数字符号,然后在运行.exe文件,运算结果就直接显示到桌面上了。

#include<iostream>
using namespace std;
int ans,x;
int main()
{
    while(cin>>x)
    {
        ans+=x;
    }
    cout<<ans;
    return 0;     
}

预计时间:O=Ctrl+c&Ctrl+v&处理输入=2分钟

Code2.0

 我表示1.0版本这与直接在windows自带的计算器上一个一个输入数据有何区别?!那这个软件有何必要存在?!于是,2.0版本来了,此版本直接将整个阅读量榜全部复制下来(Ctrl+c万岁),然后直接放到输入文本文件中即可(Ctrl+v万岁),计算机自动处理所有输入,预计需要时间O=Ctrl+c&Ctrl+v=5秒,但需要注意的是,博文题目中不能带有英文括号,否则会运算出一个极其鬼畜的数字。

#include <cstdio>
#include <stack>
using namespace std;

stack<int> s;//由于数据是从前往后读取的,需要一个调转数据处理方向的栈 
int ans,x,n,b;

int main()
{
    freopen("拱大垲专用运算软件输入.txt","r",stdin); 
    
    while(scanf("%c",&x)==1)
    {
        if(x==')')
        {
            while(!s.empty())//依次处理并弹出栈内数据 
            {
                ans+=(s.top()-48)*n;
                n*=10;
                s.pop();
            }
            b=0;
        }    
        if(b==1)//压栈 
            s.push(x);
        if(x=='(')
            n=b=1;
    }
    printf("%d\n",ans);
    
    while(1);//暴力法暂停运行,不喜欢的话可以换用getchar() 
     return 0;
}

 

posted @ 2019-05-10 21:28  Kai-G  阅读(303)  评论(0编辑  收藏  举报
Copyright © 2019-2020 拱垲. All rights reserved.