欧美大屁股bbbbxxxx,狼人大香伊蕉国产www亚洲,男ji大巴进入女人的视频小说,男人把ji大巴放进女人免费视频,免费情侣作爱视频

歡迎來(lái)到入門教程網(wǎng)!

C語(yǔ)言

當(dāng)前位置:主頁(yè) > 軟件編程 > C語(yǔ)言 >

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

來(lái)源:本站原創(chuàng)|時(shí)間:2020-01-10|欄目:C語(yǔ)言|點(diǎn)擊: 次

前言

學(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…

上一篇:C語(yǔ)言實(shí)現(xiàn)圖的鄰接矩陣存儲(chǔ)操作

欄    目:C語(yǔ)言

下一篇:C++數(shù)字三角形問(wèn)題與dp算法

本文標(biāo)題:C語(yǔ)言中的奇技淫巧

本文地址:http://mengdiqiu.com.cn/a1/Cyuyan/696.html

網(wǎng)頁(yè)制作CMS教程網(wǎng)絡(luò)編程軟件編程腳本語(yǔ)言數(shù)據(jù)庫(kù)服務(wù)器

如果侵犯了您的權(quán)利,請(qǐng)與我們聯(lián)系,我們將在24小時(shí)內(nèi)進(jìn)行處理、任何非本站因素導(dǎo)致的法律后果,本站均不負(fù)任何責(zé)任。

聯(lián)系QQ:835971066 | 郵箱:835971066#qq.com(#換成@)

Copyright © 2002-2020 腳本教程網(wǎng) 版權(quán)所有