今天下午去九江新华书店看书,其实是真想找一些好的编程书的,无奈书店里计算机方面的书实在太次,充斥着计算机科学书架的满满的都是《Dreamwaver》高级教程
、《Photoshop》入门经典
之类的书,看来这里的管理员是分不清美工和视频工作者和码农的。终于在一个书架上找到了编程书,结果扑面而来的全是各种《XX天学会XXX语言》
之类的“教程”,好不容易找到了一本写RoR
的,发现作者连MVC框架
是什么都讲不清楚,关键时刻竟然直接写“以下请看光盘上XX视频”,我去,我要看视频就能学会我还买书干屁?
所以我在书店待了一个半小时之后果断回来了,然后决定把我这个博客的界面改进一下,总感觉以前那个界面太屌丝了,完全没跟上扁平化的潮流,话不多说,开工。
改造界面的过程总体来说比较无聊,而且基本上和之前相比就是重复造一个好看的轮子的过程,总之呢,相当于又是熟悉了一下Javascript
基本语法+CSS
基本属性。
不过CSS
里居然不能对元素背景图片进行调整,真是怨念,遇到大小不行的只能改尺寸。。。
以前我总是很蛋疼CSS
里div
添加滚动条的问题,比如以前我用highlightjs
处理博文中的代码段,如果长度过长,代码会直接跑到div
的范围外,很难看。google了一下,原来解决方法如此简单,在父元素上加上如下的语句:
overflow: auto;
这样,不论在哪个方向出现子元素内容过宽或过高,父元素都会自动出现滚动条,嗯,妈妈再也不用担心我的内容越界了~~
还有,今天用CSS
还有一个意外收获,就是如果在一些元素上加上颜色合适的边框,会有意想不到的效果,比如左下角的那几个链接,之所有会有这样立体的效果,主要是因为下面这两条语句:
background: #bbbbbb;
border-bottom: 3px solid #999999;
Javascript
里打开一个地址的语句是:
location.href = '/posts'
其他的都是修饰修饰边角的小过程了,目前来看,效果还是很不错的,其实我一开始是准备把整个页面左侧的内容变换都用Javascript
来实现的,不过太麻烦了,还是做成地址跳转了,嗯,以后有时间再弄吧。
当然,今天免不了还是上HOJ
刷了一道水题,其实就是对数字的各位进行求和,若和不止一位,接续求和,用一个递归很轻松就能做出来。
这个题最恶心的地方在于,题目给的数字会很大,大到绝对能超过int
上限,甚至超过long long
,所以,必须要用字符串来存储,不过求和一次之后,后面就简单了,一直递归下去,字符串长度为1时输出即可。
代码如下:
//HOJ 1080
#include <iostream>
#include <cstring>
#include <string>
using namespace std;
void cal(char d[], int l){
if(l == 1){
cout << d[0] << endl;
return;
}else{
int sum = 0, tmp, length = 0;
char res[6];
for(int i = 0; i < l; i++)
sum += ((int)d[i]) - 48;
//cout << sum << endl;
tmp = sum;
while(tmp != 0){
length++;
tmp /= 10;
}
for(int i = length - 1; i >= 0; i--){
tmp = sum;
for(int j = 0; j < i; j++)
tmp /= 10;
res[i] = (char)(tmp % 10 + 48);
}
cal(res, length);
}
}
int main(){
char data[50000];
while(cin >> data){
if(!strcmp(data, "0"))
break;
else
cal(data, strlen(data));
}
}