menu

概念的原点

人的认知是从概念开始的,所以人的知识结构总是再用已知的或者是已理解的东西去构建和引申那些未知的和不理解的。这话有些长,但结构问题却在不断尖锐的铸建过程中愈发凸显——说白了就是基础概念的认知。就如同带三点水的汉字很大一部分,原本都只是古代的河流名而已。

然后我就想到了那个神奇的字眼——指针
多少有些庆幸当初还好学校没定到谭浩强的C语言书,不然毒害了一代又一代程序员的语法书可能也会把我搞死(当然观点不同,也有很多人喜欢谭浩强的)。幸好读到的是一本薄薄的但是写的却不错的C教材。至今记忆深刻的是其对于“指针”一词给于我的简洁到近乎暴露甚至是偏差的概念——

Read more... »

JavaScript和C的数学解题

这段时间,怿飞的博客上有一篇用 JavaScript 解数学题,代码很简练优雅。于是突然想用C写写看,因为很久没写,就权当是练习也挺不错啊:)

题目是这样的:一个六位数,分别用2,3,4,5,6乘它,得到的五个新数仍是由原数中的六个数字组成,只是位置不同,则此六位数是多少?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
#include <stdio.h>
#include <string.h>
 
#define DIGIT 6
#define MULTI 5
 
void swap( char *a, char *b ){
    int tmp;
    tmp = *a;
    *a = *b;
    *b = tmp;
}
 
void bubbleSort( char arr[] )
{
    int i,j;
    for(i = 0; i < DIGIT; i++){
        for(j = 0; j < DIGIT-1; j++){
            if ( arr[j] > arr[j+1] ){
                swap( arr+j, arr+j+1 );
            }
        }
    }
}
 
int main(){
    int num, numCopy, i, j, ind;
    int mul[MULTI] = {2,3,4,5,6};
    char indStr[DIGIT+1];
    char StrToCmp[DIGIT+1];
    for( num = 1000000/6; num >= 100000; num-- ){
        numCopy = num;
        for( i = 0; i < DIGIT; i++ ){
            StrToCmp[i] = numCopy%10+48;
            numCopy /= 10;
        }
        StrToCmp[DIGIT] = '\0';
        bubbleSort( StrToCmp );
        for( i = 0; i < MULTI; i++ ){
            ind = num * mul[i];
            for( j = 0; j < DIGIT; j++){
                indStr[j] = ind%10 + 48;
                ind /= 10;
            }
            indStr[DIGIT] = '\0';
            bubbleSort( indStr );
            if( strcmp( StrToCmp, indStr )){
                j = 0;
                break;
            }
        }
        if(j){
            printf( "This number is %d\n", num );
        }
    }
    getchar();
    return 0;
}
Read more... »

再燃ACM

自大学时代在ZOJ上最后做了第7道ACM的题目之后,已经过了4年多的时间。现在想来那时真的不懂得如何放置自己的精力。
这次同事辞呈去浙大考研,这么一次偶然的机会,我们俩就跑到ZOJ上。我点开了那个几乎快被我忘记的帐号,记录里还是那七道题,真是令人怀念。

刚刚学C,指针都还搞不清楚的时候那会,记得即使是最简单的题目,都会出好几次Wrong Answer。举步维艰地做了7道题之后,心思就不知道去了哪里。之后虽然学了数据结构、算法,却再也没摸过ACM。直到现在,拾起模糊的C,打开Dev C++,那种 “好吧,让我们再来干掉一道题吧” 的感觉居然又涌了上来。

于是就开始从同事推荐的Beginner开始做起,练习基本的输入输出,偶尔拿几道AC率20%的题活动下似乎是快锈掉的头脑。尽管算法什么的真的早就已经不记得多少,但是和当年做完全是两样的感觉。

Read more... »

Hello world!

第一篇文章总是要有些来龙去脉,就如同第一个程序总是要来个Hello world!一样。
以前不止一次搭建过wordpress,但最终都宣告失败。原因多种多样,忙碌者有之,兴尽者有之,或者,无墨者亦有之。但终究是不想放弃的。
过去的几年,学了很多,但都疏于梳理,以至荒废。
VB C C++ Java C# XHTML+CSS JavaScript PHP ActionScript Ruby Perl
Photoshop Flash Fireworks Illustrator CorelDRAW AutoCAD 3DsMax Maya
渐行渐远的内容,以及愈发冗长的行径线路,都充斥着迷惑。当再次回首时忽然有一种冲动,摘记、梳理、铭记,一路走来,挺有趣的。

1
2
3
4
5
6
7
/*C programming language*/
#include <stdio.h>
int main()
{
	printf("Hello,world!\n");
	return 0;
}
Read more... »