最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C語(yǔ)言中的奇技淫巧

 更新時(shí)間:2018年08月11日 16:11:16   投稿:mdxy-dxy  
學(xué)習(xí)C語(yǔ)言的過(guò)程中,總會(huì)遇到很多令人眼前一亮的代碼,尤其是你寫了幾十行的代碼,別人只用了簡(jiǎn)單幾行的遞歸就實(shí)現(xiàn)的功能。下面我就總結(jié)幾個(gè)C語(yǔ)言中 比較新手向的代碼。讓你有一種woc!還能這么寫的想法

前言

學(xué)習(xí)C語(yǔ)言的過(guò)程中,總會(huì)遇到很多令人眼前一亮的代碼,尤其是你寫了幾十行的代碼,別人只用了簡(jiǎn)單幾行的遞歸就實(shí)現(xiàn)的功能。下面我就總結(jié)幾個(gè)C語(yǔ)言中 比較新手向的代碼。讓你有一種”woc!還能這么寫!”的想法,二進(jìn)制 遞歸大神繞路。

第一種:遞歸類

求最大公因數(shù)

常規(guī)寫法:

int gcd(int m, int n)
{
  int r;
  if (m>n){r=m,m=n,n=r;}
  r=n%m;
  while (r!=0){
    n=m;
    m=r;
    r=n%m;
  }
  return m;
}

騷操作!–遞歸寫法!

int gcd(int x, int y) {
  return y?gcd(y,x%y):x;
}

第一次看到這個(gè)代碼,我的反應(yīng)是黑人問(wèn)號(hào)臉。臥槽?輾轉(zhuǎn)相除法,還能這么寫?wtf

逆序輸出字符串

常規(guī)寫法:

char *reverse(char *str)   
{   
 if( !str )           //判斷輸入字符串是否為空串 
 {   
 return NULL;         //若為空串則返回NULL 
 }   

  int len = strlen(str);  
  if( len > 1 )   
  {   
    char ctemp =str[0];   
    str[0] = str[len-1];    
    str[len-1] = '\0';   // 最后一個(gè)字符在下次遞歸時(shí)不再處理   
    reverse(str+1);     // 遞歸調(diào)用   
    str[len-1] = ctemp;   
  }   

  return str;   
}

遞歸寫法!

void reverse(char *x) 
{ 
  if(*x){          //若該字符型變量為0(ascii碼值為0,不是數(shù)字'0')的字符則不進(jìn)入 
    fun(x+1);     //遞歸調(diào)用 
    printf("%c",*x);  //輸出單個(gè)字符 
  } 
}

這樣寫是不是有點(diǎn)棧的味道!

第二種:二進(jìn)制!

交換兩個(gè)變量的值

常規(guī)寫法:

int temp = a;
a = b;
b = temp;

三行代碼,用到一個(gè)中間值。那么用二進(jìn)制中的異或可以不使用第三個(gè)值,并且只有一行代碼。

使用二進(jìn)制的寫法:

a ^= b ^= a ^= b;

具體兩者的時(shí)間復(fù)雜度,沒(méi)有深入的了解。

統(tǒng)計(jì)變量二進(jìn)制中 ‘1' 的個(gè)數(shù)

常規(guī)寫法:

int v; //被計(jì)算的變量 
int count=0; //計(jì)算二進(jìn)制中‘1'的個(gè)數(shù) 
while(v != 0){ 
  if(v%2 ==1) 
    count++; 
    v /= 2; 
}

將被統(tǒng)計(jì)的變量對(duì)2求余,如果余數(shù)為1則count加一。

使用二進(jìn)制的寫法:

int v=9;  //被統(tǒng)計(jì)的變量 
int count; //統(tǒng)計(jì)二進(jìn)制中‘1'的個(gè)數(shù) 
for(count=0; v; count++) {
  v &= v-1;
}

利用二進(jìn)制操作符的特性,操作二進(jìn)制能讓方法變得更加簡(jiǎn)單合理。

To be continue…

相關(guān)文章

  • C語(yǔ)言簡(jiǎn)明講解類型轉(zhuǎn)換的使用與作用

    C語(yǔ)言簡(jiǎn)明講解類型轉(zhuǎn)換的使用與作用

    類型轉(zhuǎn)換(type?cast),是高級(jí)語(yǔ)言的一個(gè)基本語(yǔ)法。它被實(shí)現(xiàn)為一個(gè)特殊的運(yùn)算符,以小括號(hào)內(nèi)加上類型名來(lái)表示,接下來(lái)讓我們一起來(lái)詳細(xì)了解
    2022-04-04
  • C語(yǔ)言 位域詳解及示例代碼

    C語(yǔ)言 位域詳解及示例代碼

    本文主要介紹C語(yǔ)言 位域的知識(shí),這里整理了相關(guān)資料,并附示例代碼及詳解,有興趣的小伙伴可以參考下
    2016-08-08
  • C++之Qt5雙緩沖機(jī)制案例教程

    C++之Qt5雙緩沖機(jī)制案例教程

    這篇文章主要介紹了C++之Qt5雙緩沖機(jī)制案例教程,本篇文章通過(guò)簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-07-07
  • C++ Custom Control控件向父窗體發(fā)送對(duì)應(yīng)的消息

    C++ Custom Control控件向父窗體發(fā)送對(duì)應(yīng)的消息

    這篇文章主要介紹了C++ Custom Control控件向父窗體發(fā)送對(duì)應(yīng)的消息的相關(guān)資料,需要的朋友可以參考下
    2015-06-06
  • 基于matlab實(shí)現(xiàn)DCT數(shù)字水印嵌入與提取

    基于matlab實(shí)現(xiàn)DCT數(shù)字水印嵌入與提取

    數(shù)字水印技術(shù)是將一些標(biāo)識(shí)信息直接嵌入數(shù)字載體當(dāng)中,?或間接表示在信號(hào)載體中,?且不影響原載體的使用價(jià)值。本文主要為大家介紹了基于matlab如何實(shí)現(xiàn)數(shù)字水印的嵌入與提取,感興趣的可以學(xué)習(xí)一下
    2022-01-01
  • C++類與對(duì)象的詳細(xì)說(shuō)明2

    C++類與對(duì)象的詳細(xì)說(shuō)明2

    這篇文章主要為大家詳細(xì)介紹了C++的類與對(duì)象,使用數(shù)據(jù)庫(kù),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助
    2022-02-02
  • 解決不用sizeof求出int大小的方法

    解決不用sizeof求出int大小的方法

    本篇文章是對(duì)不用sizeof求出int大小的方法進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-05-05
  • c++中.dll與.lib文件的生成與使用的詳解

    c++中.dll與.lib文件的生成與使用的詳解

    本篇文章介紹了,在c++中.dll與.lib文件的生成與使用的詳細(xì)介紹,需要的朋友參考下
    2013-05-05
  • Opencv二幀差法檢測(cè)運(yùn)動(dòng)目標(biāo)與提取輪廓

    Opencv二幀差法檢測(cè)運(yùn)動(dòng)目標(biāo)與提取輪廓

    這篇文章主要為大家詳細(xì)介紹了Opencv使用二幀差法檢測(cè)運(yùn)動(dòng)目標(biāo)與提取輪廓,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-03-03
  • C++中的結(jié)構(gòu)體vector排序問(wèn)題

    C++中的結(jié)構(gòu)體vector排序問(wèn)題

    這篇文章主要介紹了C++中的結(jié)構(gòu)體vector排序問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-11-11

最新評(píng)論

德格县| 潜江市| 望城县| 肥城市| 象州县| 南岸区| 博白县| 汉寿县| 荔波县| 龙口市| 石阡县| 石阡县| 锡林郭勒盟| 西畴县| 贵阳市| 渑池县| 清涧县| 象州县| 韩城市| 乐陵市| 乡城县| 博乐市| 福建省| 三江| 永嘉县| 卓资县| 洱源县| 繁昌县| 兰坪| 磐安县| 陇南市| 白山市| 宜春市| 普陀区| 桑植县| 班玛县| 拜城县| 平武县| 中方县| 巨鹿县| 东乌珠穆沁旗|