Time of Update: 2018-12-05
斐波那契數列公式如下:如果 n=0;F(n)=0如果 n=1;F(n)=1如果 n>1;F(n)=F(n-1) + F(n-2); 接斐波那契數列有遞迴方式和非遞迴方式非遞迴方式如下:#include stdio.h> #include malloc.h> #include stdlib.h>#include string.h>#include math.h>int F(int n){ int a,b,c; a = 0; b = 1;
Time of Update: 2018-12-05
有序單鏈表的合并就是兩個之前都已排好序的鏈表,將它們合并成一個鏈表。合并的過程中對於兩個鏈表值相等的結點也要鏈到最終的鏈表中去。原始碼如下:#include <stdio.h>#include <malloc.h>struct Node{ int data; Node *next;};typedef struct Node Node;Node *Merge(Node *head1,Node *head2){ Node *p1 = NULL;
Time of Update: 2018-12-05
之前一直沒弄明白在有中繼的時候,DHCP的過程會是什麼樣的,今天找到了這篇博文,特轉到自己這來。原博文地址為:http://ewangsoft.blog.163.com/blog/static/772155822009729312332/一、DHCP通訊過程之一:DHCP用戶端首次發出DHCP Discover時大河§暈王 - 大河Blog" width="543" height="119"> 從實際抓包可以看到,DHCP通訊過程包括五部分:
Time of Update: 2018-12-05
前者用於最小產生樹;後者用於單源最小路徑搜尋。兩者均通過維護待處理節點隊列中的當前“最小”資訊完成新節點的併入:前者維護的是到部分樹的最短距離;後者維護的是到源節點的最短距離。前者用於最小產生樹;後者用於單源最小路徑搜尋。最小產生樹演算法:Kruskal,Prim單源最小路徑演算法:Bellman-Ford,Dijkstra
Time of Update: 2018-12-05
現在做的這個項目用到的是開發板是MIPS晶片,所以無論是在編譯我自己的原始碼時,還是對方的靜態庫,我都要使用MIPS的gcc,也就是在我的pc裝好交叉編譯環境。交叉編譯環境的概念在pc平台上裝上特定嵌入式開發的編譯環境,對於嵌入式開發的原始碼,可以用其編譯環境在pc平台上編譯原始碼。 交叉編譯時間候如何配置串連庫的搜尋路徑
Time of Update: 2018-12-05
最近用ipsec-tools來做測試,用到了靜態配置。將幾種組合整理下發布在這裡。其中,transport+esp這個組合沒有。1. transport+ah # To manually configure IPSEC tunnels on a x86 router:# setkey -f <setkey.txt>(this file)#flush; spdflush;spdadd 10.1.2.90 10.1.2.80 any -P in ipsec
Time of Update: 2018-12-05
linux系統組成部分:linux核心、shell、工具 +
Time of Update: 2018-12-05
以前用GDB調試都只是調試單個的檔案,在做DHCP二級relay的時候需要對整個工程進行gdb調試,發現自己竟然不會!現在終於惡補上了,發到部落格上與大家分享。下面就以我調試ISC DHCP代碼為例來說一下調試的過程 首先啟動dhcrelay:sudo gdb dhcrelay由於dhcrelay的啟動是需要加參數的,所以用到set args:set args –d –i eth0 –m forward 192.168.10.1在main函數中斷點位置設定在分包函數這:b dhcrelay.c:
Time of Update: 2018-12-05
這一節講到了關於階乘的問題,但不是要你去求階乘的值。而是讓你去求階乘的結果中末尾有幾個零。大家最容易想到的方法自然就是將階乘的值求出來,再去算末尾有幾個零,但是對於大數的階乘結果會超出PC的最大範圍,這時候這樣處理就不是很明智了。 書中提到了兩種方法,我只看懂了第一種,現將它分享如下: 這個問題可以轉化為哪些數相乘能得到10這個角度來考慮,對N!進行質因數分解,N!=2^X * 3^y *
Time of Update: 2018-12-05
int main(){ int here[8] = {-1,-1,-1,-1,-1,-1,-1,-1};//某行已遍曆位置int a[8]; //某列有皇后int b[15];//主對角線有皇后 “/”int c[15];//次對角線有皇后 “\”int count=0;//memset(here,-1,sizeof(int)*8);memset(a,0,sizeof(int)*8);memset(b,0,sizeof(int)*15);memset(c,0,sizeof(int)*15);
Time of Update: 2018-12-05
最近寫了一個snmp方面的程式,就是實現snmp的get操作,在編譯運行後報了標題上的錯誤,先在網上搜尋了下,發現很多都有同樣的錯誤,大概原因是在用mallc申請了儲存空間後所返回的指標在之後的操作中使所返回的指標的指向發生了變化,例如: *sp = (char *)malloc (10*sizeof(int)); while (*sp != '/0'){ c = *sp ++; fputc(c,fp); } free(sp);
Time of Update: 2018-12-05
“水王”問題:在一個論壇裡,有N個ID發帖,其中一個ID發的貼文數超過了論壇總貼數的一半,現在要從N各ID中找出這個“水王”ID。如果每次刪除兩個不同的ID(不管是否包含“水王”的ID),那麼,在剩下的ID列表中,“水王”ID出現的次數仍然超過總數的一半。可以不斷重複這個過程,把ID列表中的總數降低(轉化為更小的問題),從而得到答案。int Find(int *ID,int N){ int candidate; int i,nTimes; for(i =
Time of Update: 2018-12-05
今天開始看編程之美這本書,之前看過這本書的介紹覺得很不錯。一直沒有時間看,現在項目稍微輕鬆點了,得抓緊時間看書了。上一次大概瀏覽了下這本書,決定從第二章開始看,今天寫的是第二章的第一個小部分:求位元中1的個數。 書上介紹了很多方法,非常不錯!第一種:最直接的解法,用%與/。如果取餘結果為1,則計數加1,然後除以2.原始碼如下#include stdio.h>int main(){ int num = 0; int v; scanf("%d",&v);
Time of Update: 2018-12-05
師姐前幾天有個線上筆試,怕時間上來不及就找我給她幫下忙。做了幾道題目,覺得應該是面試當中常常用到的,大數相乘就是其中一個題目,覺得應該是以後面試中經常會用到的,所以記了下來。 我這裡採取的方法是將大數儲存在字串中,然後將兩個字串逐位相乘,再進位和移位。應該還有效率更高的代碼。 原始碼: #include <stdio.h>#include <stdlib.h>#include
Time of Update: 2018-12-05
看演算法設計書上提到這個問題,書上給出了一個很好的解法。對於輸入的一個字串,可能包含大小寫,標點符號,空格等等字元。所以我們第一步需要做的就是剔除掉這些非字母字元。並且記下字母字元在原串中的位置。第二步,我們要找最長的迴文子串,書上給出的解法是採取假設中間字元的位置這一方法。一次假設該字元為迴文子串的中間字元,並分兩種情況向左右兩邊擴充,一種是迴文子串長度為奇數個,一種是迴文子串長度為偶數個。具體實現如下:
Time of Update: 2018-12-05
題目描述:給定正整數N,找出從1到N的所有數中包含1的個數。例如N=12,1,2,3,4,5,6,7,8,9,10,11,12中包含1的數有1,10,11,12,這四個數中共有5個1. 下面給出我的解法,也是最直接求解方法,遍曆1到N,將其中每個數含有1的個數加起來,就得到了所有“1”的個數之和。但這種方法的時間複雜度較高,為O(N*lnN)。原始碼如下:int Count1(int N){ int i,j; int cnt = 0; for(i = 1; i N;
Time of Update: 2018-12-05
原帖地址:http://topic.csdn.net/u/20091029/10/545cde0e-c28e-42bf-9ae5-155d9d9dd4ce.html 這是一道面試題,要求寫一個函數寫一個函數 int p(int i, int N); 能夠輸出i到N再到i,即以參數1,7調用函數,輸出結果為 1 2 3 4 5 6 7 6 5 4 3 2
Time of Update: 2018-12-05
原帖地址:http://topic.csdn.net/u/20091205/20/6af2931e-ce9a-4ccb-bf2f-13a49f39963f.html?seed=592508926&r=61679380#r_61679380 #define STACK_INIT_SIZE 100#define STACKINCREMENT 10#include <stdio.h>#include <stdlib.h>typedef struct stack{int
Time of Update: 2018-12-05
一直想開部落格寫點自己學習中的心得或者發發學習中所做的筆記,以此也算督促自己養成勤記筆記的習慣,以下所寫都是自己在配置cisco路由器時的筆記,如果不真確這處,還請大家指正,謝謝! 一、基本介紹:cisco路由器分為幾類配置模式,如下:User EXEC 啟動後預設的模式 Router> 利用logout命令退出Privileged
Time of Update: 2018-12-05
原來的程式:/* 檔案操作 */static struct file_operations xxx_fops = { ...... .mmap = _xxxx_mmap, ......};static int _xxxx_mmap(struct file * file, struct vm_area_struct * vma){ int offset; offset = ((int)(__pa(pdata)) >>