亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費(fèi)注冊(cè) 查看新帖 |

Chinaunix

  平臺(tái) 論壇 博客 文庫(kù)
12
最近訪問板塊 發(fā)新帖
樓主: billzhou
打印 上一主題 下一主題

大家是怎么實(shí)現(xiàn)的 [復(fù)制鏈接]

論壇徽章:
0
11 [報(bào)告]
發(fā)表于 2007-10-30 22:53 |只看該作者
模運(yùn)算,模2余0 且除以2以后的結(jié)果也符合該要求。1 和 2 單獨(dú)處理。不考慮負(fù)數(shù)冪

  1. #include <stdio.h>

  2. int is2_n( int n ) {
  3.     if( n < 1 )
  4.         return( 0 );

  5.     if( n == 2 || n == 1 )
  6.         return( 1 );

  7.     return( is2_n( n / 2 ) && n && ( ! ( n % 2 ) ) );
  8. }

  9. int main( void ) {
  10.     int i = 0;
  11.     while( i < 10000 ) {
  12.         if( is2_n( i ) )
  13.             printf( "%d\n", i );
  14.         i ++;
  15.     }

  16.     return( 0 );
  17. }

復(fù)制代碼

論壇徽章:
0
12 [報(bào)告]
發(fā)表于 2007-10-30 23:02 |只看該作者
原帖由 xB1ue 于 2007-10-30 22:53 發(fā)表
模運(yùn)算,模2余0 且除以2以后的結(jié)果也符合該要求。1 和 2 單獨(dú)處理。不考慮負(fù)數(shù)冪

#include

int is2_n( int n ) {
    if( n < 1 )
        return( 0 );

    if( n == 2 || n == 1 )
        retu ...

一句程序?

論壇徽章:
0
13 [報(bào)告]
發(fā)表于 2007-10-30 23:30 |只看該作者
原帖由 billzhou 于 2007-10-30 22:08 發(fā)表
遞歸是可以滴:wink:


lz 說(shuō)了遞歸也可以的

論壇徽章:
0
14 [報(bào)告]
發(fā)表于 2007-10-30 23:34 |只看該作者
原帖由 sanbiangongzi 于 2007-10-30 22:13 發(fā)表



暈了,更正,0不是2的冪哈

所以應(yīng)該是 (x && (x&(x-1)))

x==0時(shí),這個(gè)表達(dá)式的結(jié)果就是0了,但0不是2的冪。

論壇徽章:
0
15 [報(bào)告]
發(fā)表于 2007-10-30 23:38 |只看該作者
原帖由 cugb_cat 于 2007-10-30 23:02 發(fā)表

一句程序?


如果非要用“一句話”遞歸
只有這么難看了:

  1. int is2_n( int n ) { return( ( n < 1 ) ? 0 : ( ( n == 2 || n == 1 ) ? 1 : ( is2_n( n / 2 ) && n && ( ! ( n % 2 ) ) ) ) ); }

復(fù)制代碼

論壇徽章:
0
16 [報(bào)告]
發(fā)表于 2007-10-30 23:42 |只看該作者
原帖由 zwylinux 于 2007-10-30 23:34 發(fā)表

x==0時(shí),這個(gè)表達(dá)式的結(jié)果就是0了,但0不是2的冪。


他說(shuō)的是判斷條件,就是 if( ... )

但是還是有問題,1是2的0次冪

論壇徽章:
0
17 [報(bào)告]
發(fā)表于 2007-10-31 00:22 |只看該作者
原帖由 sanbiangongzi 于 2007-10-30 22:08 發(fā)表
2的冪就是說(shuō):為0或者只有一位是1
x&(x-1)就應(yīng)該等于0

如果有兩個(gè)或者兩個(gè)以上的1那么x&(x-1)肯定不等于0

所以判斷x&(x-1)即可


好像內(nèi)核里有地方就是用這種方法哦

論壇徽章:
0
18 [報(bào)告]
發(fā)表于 2007-10-31 21:33 |只看該作者
差點(diǎn)給忘記了,以前寫過這個(gè)算法:

http://www.cppblog.com/converse/ ... /10/9664.aspx#35604

論壇徽章:
0
19 [報(bào)告]
發(fā)表于 2007-10-31 21:40 |只看該作者
原帖由 sanbiangongzi 于 2007-10-30 22:13 發(fā)表



暈了,更正,0不是2的冪哈

所以應(yīng)該是 (x && (x&(x-1)))



--------
再修改
  (x && !(x&(x-1)))

論壇徽章:
0
20 [報(bào)告]
發(fā)表于 2007-10-31 22:18 |只看該作者
原帖由 sanbiangongzi 于 2007-10-31 21:40 發(fā)表



--------
再修改
  (x && !(x&(x-1)))

12
返回列表 發(fā)新帖
您需要登錄后才可以回帖 登錄 | 注冊(cè)

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號(hào)-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號(hào):11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報(bào)專區(qū)
中國(guó)互聯(lián)網(wǎng)協(xié)會(huì)會(huì)員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請(qǐng)注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP