百度首页 | 百度空间
 
查看文章
 
TOj(10.60.101.7) 10000 题目解题报告(续)
2008-06-26 19:59

5)以上时间肯定要快一些了但是在一K内存1K金的年代,148KB的内存显然是难以忍受的,多方询问打探,终于能减少一些内存了(变为了136K!!):

int main() {
    __asm {
              push     esi
                         mov eax, fs:0x30;
              mov eax, [eax + 0x0c]
              mov esi, [eax + 0x1c]
              lodsd
                         mov eax, [eax + 8]
              mov kernel32Base, eax
                         pop esi
    }
    ReadFile = GetFunctionByName(kernel32Base, "ReadFile", 8);
    WriteFile = GetFunctionByName(kernel32Base, "WriteFile", 9);
    GetStdHandle = GetFunctionByName(kernel32Base, "GetStdHandle", 12);
 
 
    ReadFile(GetStdHandle(STD_INPUT_HANDLE), in, 10, &len, NULL);
    if (in[1] == ' ') {
              out[1] += in[0] - '0';
              i = 2;
    } else {
              out[0] += in[0] - '0';
              i = 3;
    }
    if (in[i + 1] < '0')
              out[1] += in[i] - '0';
    else out[0] += in[i] - '0';
    if (out[1] >= 10) {
              out[1] -= 10;
              out[0]++;
    }
    out[0] += '0';
    out[1] += '0';
    if (out[0] == '0')
              WriteFile(GetStdHandle(STD_OUTPUT_HANDLE), out + 1, 3, &len, NULL);
    else WriteFile(GetStdHandle(STD_OUTPUT_HANDLE), out, 4, &len, NULL);
}

6)以上的解法固然巧妙,但是软件工程学院的文化青年看了非常愤怒,说这样的代码会导致软件危机,简直是强奸代码,于是,按照软件工程的思想,有如下代码:

#include<iostream>
using namespace std;
 
class calculator
{
     int x,y;
public:
     calculator()
     {
         cin>>x>>y;
         cout<<x+y<<endl;
     }
};
 
int main()
{
     calculator MyCal;
     return 0;
}

         最后,感谢提供以上代码的各位Big N们。。。


类别:扯淡栏 | 添加到搜藏 | 浏览() | 评论 (0)
 
最近读者:
 
网友评论:
发表评论:
姓 名:
网址或邮箱: (选填)
内 容:
验证码:
 

     

©2008 Baidu