今天终于搞定了开题报告,看了半天的文档才知道我到底要做什么,真是残念啊。。。
话说回来,明天要是让我自己说我还能说明白,如果听我讲的老师问什么问题,我可能就要扑街了>_<
嗯,只要不被毙掉就好,我已经做好出丑的准备了~
闲暇之余看了看我想做的code2pdf
项目,百度上当然是一个结果都没有,google上也没有,上Github一看,倒是有几个脚本语言的项目是这个名字,但是都不符合我的要求,因为我需要生成的PDF里能有带有源码高亮,这个我觉得用Javascript是最好做的,因为现成的高亮库很多,而且在页面上生成后就可以直接输出PDF了,这绝对是一大优势。
至于Ruby,我看了看一些代码高亮的gem,大部分都只支持在网页上渲染,这不符合我的要求,因为我需要是一个能在本地渲染好然后输出到PDF,找了半天,有一个gem让我眼前一亮,就是rouge。
这个gem之所以吸引我,就是因为它提供了一个终端的指令rougify
,这个指令可以对特定文件进行高亮输出,然后我想,如果我使用这个gem,在内部获得高亮并输出到PDF就可以了。而且在阅读rouge源码的过程中,我发现这个gem不愧是号称最轻量级的代码高亮gem,真是写的太简洁优美了,只要花点时间,调用这个gem的parser
和lexer
应该不难。
刚刚还收到了去哪儿网通知笔试的邮件,毕设开题也差不多了,马上就要投入找工作的节奏中去了。
Fight!!
~~~~~~~~~~~~我是萌萌的昏割线~~~~~~~~~~~~~
1430
(未完成):这道题感觉应该是很简单的,其实就是对车辆的路程时间循环相加,当结果大于等于到达车站的时间时求余,余数最小的就是等待时间最少的情况。
题目很简单,很快就写出代码了,结果WA
,上POJ
一看,有些输入情况可能在行末有空格,加上判定语句,有空格的情况结果正确了,提交,还是WA
,然后又改了一些地方,可是始终没办法,就是不停地WA
、WA
、WA
。。。
算了,不纠结这种纯数学题了,放代码吧:
#include <iostream>
#include <cstdio>
#include <string>
#include <cstring>
#include <cstdlib>
using namespace std;
typedef struct Route{
int durations[15];
int num_of_durations;
}Route;
int main(){
Route routes[30];
string sl, el, line;
char tmp[10];
int N, at, sum, min, tmp1;
while(cin >> sl && sl != "ENDOFINPUT"){
cin >> N;
for(int i = 0; i <= N; i++){ //不知道为什么第1次也就是i = 0的时候循环体没有执行,所以改成了<= N
getline(cin, line);
for(int j = 0, k = 0, count = 0; j < line.length(); j++){
int l;
if(j == line.length() - 1){
if(line[j] == ' '){
for(l = 0; l < j - k; l++)
tmp[l] = line[k + l];
}else{
for(l = 0; l <= j - k; l++)
tmp[l] = line[k + l];
}
tmp[l] = '\0';
routes[i].durations[count++] = atoi(tmp);
routes[i].num_of_durations = count;
break;
}else if(line[j] == ' '){
for(l = 0; l < j - k; l++)
tmp[l] = line[k + l];
tmp[l] = '\0';
k = j + 1;
routes[i].durations[count++] = atoi(tmp);
}
}
}
cin >> at;
cin >> el;
min = INT_MAX;
for(int i = 1; i <= N; i++){
sum = 0;
tmp1 = 1;
while(tmp1++){
sum += routes[i].durations[(tmp1 - 2) % routes[i].num_of_durations];
if(sum >= at){
if(sum - at <= min)
min = sum - at;
break;
}
}
}
cout << min << endl;
}
}
1435
:简单的大整数求和,这道题我使用C++
的string
做的,感觉很方便啊有木有,真的想不到C++
原来已经这么屌了,真的越来越喜欢这门语言了~
对了,C++
中的string
,和C
中的char *
本质上是一样的,也就是说,C++
的string
型变量本身就是代表地址,在需要传址的地方,不需要使用取址符号&
。
代码如下:
#include <iostream>
#include <string>
using namespace std;
string add(string str1, string str2){
int len1 = str1.length(), len2 = str2.length(), plus = 0, tmp;
string result = "";
if(len1 > len2){
for(int i = 0; i < len1 - len2; i++)
str2 = "0" + str2;
}else if(len2 > len1){
for(int i = 0; i < len2 - len1; i++)
str1 = "0" + str1;
}
for(int i = str1.length() - 1; i >= 0; i--){
tmp = str1[i] - '0' + str2[i] - '0' + plus;
if(tmp > 9){
tmp -= 10;
plus = 1;
}else
plus = 0;
result = (char)(tmp + '0') + result;
}
if(plus)
result = "1" + result;
return result;
}
int main(){
string input, sum;
sum = "0";
while(cin >> input && input != "0"){
sum = add(sum, input);
}
cout << sum << endl;
}