使用者輸入一個整數 用最少的2的N次冪合成

這個貌似是清華大學考研複試題,起初的想法是迴圈除以2,然後逆序輸出,程式也較易實現,不過是否有一種更為便捷的方法呢?有!包含在<stdlib.h>庫裡的itoa函數已實現此類功能。源碼如下:#include <iostream>#include <stdlib.h>using namespace std;int main(){    int nValue=0;    char buf[100]={0};    int n=-1;    int count=0;

求子數組的最大和並輸出該子數組各成員

題目:輸入一個整形數組,數組中連續的一個或多個整數組成一個子數組,每個子數組都有一個和。求所有子數組的和的最大值並輸出該子數群組成員。要求時間複雜度為O(n)。#include <iostream>using namespace std;int Sum(int *a,int size,int *&result,int &count);int main(){    const int N=8;    int a[]={1,-2,3,10,-4,7,2,-5};   

Win32 Application基本架構

//程式入口intAPIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow){ MSG msg; //訊息結構體 //向系統註冊視窗類別別,輸入的參數“hInstance”是目前程式運個體的對象代碼 MyRegisterClass(

假設有這樣一種字串,它們的長度不大於 10,不重複的輸出它的任意排列

分析:由於長度未知,常規的遍曆輸出方法是很難實現的,遞迴是個不錯的選擇。 實現:首先完成序列的任意排列輸出: #include <iostream>#include <string>using namespace std;int g_nCount=0;string strBuf="";void OutPut(string,int);int _tmain(int argc, _TCHAR* argv[]){    string str="";    cout<<

好玩的筆試題

有人從一手紙牌中選定一張牌,他把這張牌的點數告訴A,而把花色告訴了B。兩位先生都知道這手紙牌是:黑桃:J、8、4、2;梅花:K、Q、5、4;紅心:A、Q、4;方塊:A、5;A和B對話如下:A:我不知道這張牌。B:我知道你不知道。A:現在我知道了。B:現在我也知道了。根據以上對話,你能推測出這是下面哪一張牌?( )  A.方塊A   B.紅心Q  C.黑桃4   D.方塊5數字推理:16   23   28   38   49   __A 59   B 60   C 62   D

fopen:文本和二進位方式開啟 ZZ

    在學習C語言檔案操作後,我們都會知道開啟檔案的函數是fopen,也知道它的第二個參數是 標誌字串。其中,如果字串中出現'b',則表明是以開啟二進位(binary)檔案,否則是開啟文字檔。  那麼什麼是文字檔,什麼是二進位檔案呢? 可能大多數人都沒有仔細考慮過。   在Windows和DOS系統中,狹義的文字檔是指副檔名為txt的檔案。實際上,那些沒有規定格式的,由可理解的的ASCII以及其他編碼文字組成

求一個大小已知的整型數組中不重複的元素個數

//{2,1,2,3,5}不重複的元素個數是3 #include <iostream>#define N 15using namespace std;void Sort(int *,int size);int main(){    bool flag=false;//以防出現連續重複的數值    int k[N] = {1,17,1,3,3,5,7,9,11,13,15,17,3,5,9};    int count=1;    int subCou=0;    Sort(k,N);

Win32App繪製封閉圖形函數

繪製橢圓函數BOOL Ellipse( HDC hdc, int x1, //橢圓外接矩形左上點x座標 int y1, //橢圓外接矩形左上點y座標 int x2, //橢圓外接矩形右下點x座標 int y2 ); //橢圓外節矩形右下點y座標繪製圓角矩形BOOL

關於Stack unwinding

轉點資料,用於備忘 @_@Stack unwinding (C++ only)When an exception is thrown and control passes from a try block to a handler, the C++ run time calls destructors for all automatic objects constructed since the beginning of the try block. This process is

容易被誤解的inline

C++中的inline是個容易被誤解的關鍵字,即使是專家也常會犯錯。不信?請開啟《Thinking in C++ 2rd Edition Volumn  1》,找到Chapter 9  "Inline Function"的Exercise 6:“Prove that inline functions default to internal linkage."為什麼我說這裡作者犯錯了呢?因為C++ 03標準中角標79處明確寫到:“  The inline keyword has no

求N個點中斜率最大(不考慮無窮)的兩個點並輸出最大斜率

程式沒有實現與使用者的輸入互動:#include <iostream>using namespace std;void Sort(double [][2],int size);int main(){const int N=6;double max=0;double x1,y1,x2,y2;double pt[N][2]={{1.2,1.8},{2.1,8.7},{0.31,3.1},{1.4,4.9},{12.5,5.2},{6.8,6.1}};Sort(pt,6);for(int

自動掛載.ISO鏡像的簡單指令碼

#!/bin/bash##############################################################################   AutoMountISO:自動掛載/卸載ISO鏡像#   Author:whodare#hotmail.com#   ##   功能  1.對於.ISO檔案自動掛載,並自動開啟檔案瀏覽器瀏覽其內容#         2.對於掛載點,自動完成卸載,並在必要時自動刪除掛載點#   #   整個指令碼所完成的功能不需要使

轉型操作的中的一個陷阱

    今天看《Effective C++ 3rd》中的第27款時看到的:         "關於強制轉型的一件有趣的事,是很容易寫出看起來似是而非(在其它語言中也許是對的)的代碼。例如,許多應用程式架構要求 derived classes中的virtual member function要首先調用 base class(的對應函數。假設我們有一個 Window base class(基類)和一個 SpecialWindow derived class(衍生類別),它們都定義了

檔案操作的四種方式

第一種:Header: <fstream>Namespace: std成員函數open(),用來開啟檔案.原型:void open(const char* filename,int mode,int access);  其中: filename: 要開啟的檔案名稱            mode: 要開啟檔案的方式            access: 開啟檔案的屬性  預設情況為opening protection  開啟檔案的方式:  ios::app: 以追加的方式開啟檔案  

Solaris 10開啟SSH服務

    近日受老闆之命,不得不在一台廢棄的伺服器上裝個Solaris 10 。出於對Linux的喜愛,我對這個目前最正宗的UNIX作業系統之一很自然的帶有好感,最初也想趁這個機會接觸下傳說中的UNIX 。     然而安裝後確實大失所望:略顯不友好的安裝流程,安裝完畢後醜陋的案頭環境,以及連命令補全功能都不具備的shell,天啊,這就是最純粹的UNIX之一?我不由的懷念起Linux,就如剛接觸Linux時懷念Windows一般。    

單向鏈表的建立及翻轉

感謝XX公司的筆試啊,讓我總算下定決心徹底把這個似乎很簡單的問題想一想了,發覺之前自己的理解真是差強人意! 下面的鏈表翻轉是通過重新建立一個新鏈表來實現的,空間複雜度過於不理想...#include <iostream>using namespace std;struct Node{int data;Node *next;}*head;void AddNode(int value);void Swap(Node *&head);int

幾個需要清晰理解的概念

1  名稱覆蓋    子類若定義了與基類成員名稱相同的成員,則基類成員在子類中會被覆蓋。這裡要理解的是C++的名稱掩蓋規則(name-hiding rules)是很簡單的:只看名稱,不區別類型。    此外,如果基類中存在某個成員函數的若干個重載版本,而子類也定義了同名函數(參數類型與傳回值是否一致都不重要),則基類所有版本的重載函數都會被覆蓋。    例如,下面例子中基類的成員x和 foo()都會被子類中的對應成員所覆蓋,儘管它們的類型並不相同    class Base{public:   

二叉樹的建立及先根中根後根按層次遍曆

#include <iostream>#include <deque>using namespace std;struct BTree{BTree* pLeft;BTree* pRight;int value;};void AddNode(BTree* &pCurrent,int values);void PreOrderTraversal(BTree* root);void InOrderTraversal(BTree* root);void

由一個問題引發的思考

    記不請是那個大哥的blog了,名字好像叫做“用了10年,才知道C++才懂了一點“。俺覺得這話說的太實在了,正如TAOUP中4.2節所言:”C++ is anti-compact—the language's designer has admitted that he doesn't expect any one programmer to ever understand it all.“   

核心代碼中和使用者棧相關的幾個片段

今天突然腦子裡面幾處知識點大串聯,貌似是迸發出了些許思維的火花,以前一直感覺模模糊糊的有關使用者棧的大小限制、棧是怎麼自動擴充等問題,通過對照以前看過的核心代碼的一些關鍵片段,似乎清晰了起來。機不可失,趁還沒迷糊之前拿筆記下來。問題1    Linux下使用者程式的預設棧大小是多少?如何查看,又如何更改預設值(上層指令和底層實現)?        在bash中輸入“ulimit -s

總頁數: 61357 1 .... 20993 20994 20995 20996 20997 .... 61357 Go to: 前往

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.