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

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

Chinaunix

  平臺(tái) 論壇 博客 文庫(kù)
123下一頁(yè)
最近訪問(wèn)板塊 發(fā)新帖
樓主: udb6688
打印 上一主題 下一主題

[算法] 華為面試題,求答案? [復(fù)制鏈接]

論壇徽章:
14
巨蟹座
日期:2013-11-19 14:09:4615-16賽季CBA聯(lián)賽之青島
日期:2016-07-05 12:36:0515-16賽季CBA聯(lián)賽之廣東
日期:2016-06-29 11:45:542015亞冠之全北現(xiàn)代
日期:2015-07-22 08:09:472015年辭舊歲徽章
日期:2015-03-03 16:54:15巨蟹座
日期:2014-12-29 08:22:29射手座
日期:2014-12-05 08:20:39獅子座
日期:2014-11-05 12:33:52寅虎
日期:2014-08-13 09:01:31巳蛇
日期:2014-06-16 16:29:52技術(shù)圖書(shū)徽章
日期:2014-04-15 08:44:01天蝎座
日期:2014-03-11 13:06:45
11 [報(bào)告]
發(fā)表于 2014-08-15 14:55 |只看該作者
  1. #include <stdio.h>
  2. #include <assert.h>

  3. int main()
  4. {
  5.     const int arr[] = { 43, 72, 12, 32, 19, 9, 2, 14 };
  6.     const unsigned N = sizeof(arr)/sizeof(arr[0]);

  7.     assert( N < sizeof(N)*8 );
  8.     for( unsigned i=1; i!=(1u<<N); ++i ) // i不從0開(kāi)始,是為了剔除『一個(gè)都沒(méi)選擇』的情況
  9.     {
  10.         if( (i&(i-1)) == 0 ) // 剔除『只選擇了一個(gè)』的情況
  11.             continue;

  12.         // 輸出
  13.         for( unsigned j=0; j!=N; ++j )
  14.             if( i&(1u<<j) )
  15.                 printf( "%d%c", arr[j], "+\n"[(i&((~0u)<<(j+1)))==0] );

  16.     }
  17.     return 0;
  18. }
復(fù)制代碼

論壇徽章:
0
12 [報(bào)告]
發(fā)表于 2014-08-15 14:58 |只看該作者
回復(fù) 10# koolcoy


    0 1 2 3 3 4 5 6 4 5 6 7 7 8 9 10 5 6 7 8 8 9 10 11 9 10 11 12 12 13 14 15 6 7 8 9 9 10 11 12 10 11 12 13 13 14 15 16 11 12 13 14 14 15 16 17 15 16 17 18 18 19 20 21 7 8 9 10 10 11 12 13 11 12 13 14 14 15 16 17 12 13 14 15 15 16 17 18 16 17 18 19 19 20 21 22 13 14 15 16 16 17 18 19 17 18 19 20 20 21 22 23 18 19 20 21 21 22 23 24 22 23 24 25 25 26 27 28 8 9 10 11 11 12 13 14 12 13 14 15 15 16 17 18 13 14 15 16 16 17 18 19 17 18 19 20 20 21 22 23 14 15 16 17 17 18 19 20 18 19 20 21 21 22 23 24 19 20 21 22 22 23 24 25 23 24 25 26 26 27 28 29 15 16 17 18 18 19 20 21 19 20 21 22 22 23 24 25 20 21 22 23 23 24 25 26 24 25 26 27 27 28 29 30 21 22 23 24 24 25 26 27 25 26 27 28 28 29 30 31 26 27 28 29 29 30 31 32 30 31 32 33 33 34 35 36
這樣的結(jié)果似乎不對(duì)耶

論壇徽章:
1
2015年迎新春徽章
日期:2015-03-04 09:49:45
13 [報(bào)告]
發(fā)表于 2014-08-15 15:04 |只看該作者
回復(fù) 12# udb6688

基本就這么個(gè)意思,調(diào)試一下就能找到哪里不對(duì)了
   

論壇徽章:
1
2015年迎新春徽章
日期:2015-03-04 09:49:45
14 [報(bào)告]
發(fā)表于 2014-08-15 15:11 |只看該作者
我那個(gè)代碼應(yīng)該沒(méi)有錯(cuò),這么改一下就很清晰了:

  1. #include <stdio.h>

  2. int main() {
  3.         unsigned long input[8] = {1, 10, 100, 1000, 10000, 100000, 1000000,
  4.                 10000000};
  5.         unsigned long sum[256];

  6.         sum[0] = 0;
  7.         sum[1] = input[0];

  8.         int idx = 2;
  9.         for (int i = 1; i < 8; ++i, idx *= 2) {
  10.                 for (int j = 0; j < idx; ++j) {
  11.                         sum[idx + j] = input[i] + sum[j];
  12.                 }
  13.         }
  14.         for (int i = 0; i < 256; ++i) {
  15.                 printf("%08lu\n", sum[i]);
  16.         }
  17.         return 0;
  18. }
復(fù)制代碼

論壇徽章:
0
15 [報(bào)告]
發(fā)表于 2014-08-15 15:15 |只看該作者
回復(fù) 14# koolcoy


    還沒(méi)有細(xì)研究,發(fā)覺(jué)打印0,就認(rèn)為不對(duì)了。

論壇徽章:
0
16 [報(bào)告]
發(fā)表于 2014-08-15 15:18 |只看該作者
回復(fù) 14# koolcoy


    idx=2是什么意思?

論壇徽章:
1
2015年迎新春徽章
日期:2015-03-04 09:49:45
17 [報(bào)告]
發(fā)表于 2014-08-15 15:21 |只看該作者
本帖最后由 koolcoy 于 2014-08-15 15:21 編輯

回復(fù) 16# udb6688

因?yàn)閟um[0]和sum[1]已經(jīng)賦值了,所以就從sum[2]開(kāi)始算起
   

論壇徽章:
2
巳蛇
日期:2013-12-31 14:13:002015年亞洲杯之沙特阿拉伯
日期:2015-03-26 13:30:50
18 [報(bào)告]
發(fā)表于 2014-08-15 15:34 |只看該作者
這樣嗎?

1+2 1+3 1+4 1+5 1+6 1+7 1+8
1+2+3 1+2+4 1+2+5 1+2+6 1+2+7 1+2+8
1+2+3+4 1+2+3+5 1+2+3+6 1+2+3+7 1+2+3+8
1+2+3+4+5 1+2+3+4+6 1+2+3+4+7 1+2+3+4+8
1+2+3+4+5+6 1+2+3+4+5+7 1+2+3+4+5+8
1+2+3+4+5+6+7 1+2+3+4+5+6+8
1+2+3+4+5+6+7+8

2+3 2+4 2+5 2+6 2+7 2+8
2+3+4 2+3+5 2+3+6 2+3+7 2+3+8
2+3+4+5 2+3+4+6 2+3+4+7 2+3+4+8
2+3+4+5+6 2+3+4+5+7 2+3+4+5+8
2+3+4+5+6+7 2+3+4+5+6+8
2+3+4+5+6+7+8

3+4 3+5 3+6 3+7 3+8
3+4+5 3+4+6 3+4+7 3+4+8
3+4+5+6 3+4+5+7 3+4+5+8
3+4+5+6+7 3+4+5+6+8
3+4+5+6+7+8

4+5 4+6 4+7 4+8
4+5+6 4+5+7 4+5+8
4+5+6+7 4+5+6+8
4+5+6+7+8

5+6 5+7 5+8
5+6+7 5+6+8
5+6+7+8

6+7 6+8
6+7+8

7+8


   

論壇徽章:
0
19 [報(bào)告]
發(fā)表于 2014-08-15 15:38 |只看該作者
本帖最后由 sig13 于 2014-08-15 16:53 編輯

我用遞歸寫(xiě)了一個(gè),但是也沒(méi)有解決有重復(fù)輸入的問(wèn)題,即輸入1,1,1,1這樣的情況。
  1. #include <stdio.h>

  2. int b[16];

  3. int d(int in)
  4. {
  5.     static int cnt=0;
  6.     int i;

  7.     printf("%4d: ", cnt++);

  8.     if (in > 0) printf("%d", b[0]);

  9.     for (i=1; i<in; i++) printf("+%d", b[i]);

  10.     printf("\n");

  11.     return 0;
  12. }

  13. int p(int a[], int n, int m, int in);

  14. int p(int a[], int n, int m, int in)
  15. {
  16.     int i;

  17.     //printf("n=%d, m=%d, in=%d\n", n, m, in);

  18.     if (m < 0) return 0;
  19.     if (m == 0) return d(in);

  20.     if (m == n)
  21.     {
  22.         for(i=0; i<n; i++) b[in+i] = a[i];
  23.         return d(in+n);
  24.     }

  25.     for(i=0; i<n; i++)
  26.     {
  27.         b[in] = a[i];
  28.         p(a+(i+1), n-(i+1), m-1, in+1);
  29.     }

  30.     return 0;
  31. }

  32. int main(int argc, char* argv[])
  33. {
  34.     int a[]={1, 2, 3, 4, 5, 6, 7, 8};

  35.     p(a, 8, 2, 0);
  36.     p(a, 8, 3, 0);
  37.     p(a, 8, 4, 0);
  38.     p(a, 8, 5, 0);
  39.     p(a, 8, 6, 0);
  40.     p(a, 8, 7, 0);
  41.     p(a, 8, 8, 0);

  42.     return 0;
  43. }
復(fù)制代碼

論壇徽章:
1
寅虎
日期:2014-11-30 21:25:54
20 [報(bào)告]
發(fā)表于 2014-08-15 16:36 |只看該作者
#include<iostream>
#include<vector>
#include<string>  
#include<iterator>  
using namespace std;
using std::iterator;
void CombineRescure(vector<int> &num,vector<int>::iterator pNum,vector<int> &result,int count);
void Combine(vector<int> num,int n)
{
        if(num.empty())
                return;
        vector<int> result;
        CombineRescure(num,num.begin(),result,n);
}
void CombineRescure(vector<int> &num,vector<int>::iterator pNum,vector<int> &result,int count)
{
        if(count==0)
        {
                for(int i=0;i<result.size();i++)
                {
                        cout<<result[i];
                        if(i!=result.size()-1)
                                cout<<"+";
                }
                cout<<",";
                return;
        }
        if(pNum!=num.end())
        {
                result.push_back(*pNum);
                CombineRescure(num,pNum+1,result,count-1);
                result.erase(result.end()-1);
                CombineRescure(num,pNum+1,result,count);
        }
}
int main()
{
        vector<int> num;
        for(int i=1;i<=8;i++)
        {
                num.push_back(i);
        }

        for(int i=1;i<=num.size();i++)
        {
                Combine(num,i);
                cout<<endl;
        }
        return 0;
}
您需要登錄后才可以回帖 登錄 | 注冊(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)心和支持過(guò)ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請(qǐng)注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP