c/c++ 編程試題

c/c++ 編程試題
帶*號為選作題,給出代碼截屏和編譯運算結果截屏

1.編程:選取M個最大的數 編程實現從N個無序數中選取M個最大的數(0 < M < N )

思路:通過冒泡排序或者選擇排序對N個數進行遞減排序,然后輸入前M個數即可。這里我想到的是通過數組來存儲這N個數。

#include <iostream>
#include <stdio.h>using namespace std;int main()
{int i,j,t,N,M,a[1000];printf("請輸入N:");scanf("%d",&N);for(i=0;i<N;i++){scanf("%d",&a[i]);}for(i=0;i<N-1;i++){for(j=0;j<N-1-i;j++){if(a[j]>a[j+1]){t=a[j];a[j]=a[j+1];a[j+1]=t;}}}printf("請輸入M:");scanf("%d",&M);for(j=0;j<M;j++){printf("%d\n",a[j]);}return 0;
}

在這里插入圖片描述

2.編程:斷開鏈條 給定一個包含N個整數的數組A,假設這個數組表示的是一條鏈條,其中 每個元素表示鏈條上的一環。現在我們想把這條鏈條斷成3小部分。我們需 要做的就是斷開不相連的兩個環,比如,我們需要斷開環P、Q
(0<P<Q<N-1, Q-P > 1),得到三個小鏈條[0,P-1],[P+1,Q-1],[Q+1,N-1]。
上述操作的成本是A[P]+A[Q]。 例如:數組A為 A[0] = 5 A[1] = 2 A[2] = 4 A[3] = 6 A[4] =
3 A[5] = 7 我們可以選擇如下方式斷開鏈條

  • (1,3):成本是 2+6 = 8
  • (1,4):成本是 2+3 = 5
  • (2,4):成本是 4+3 = 7 寫一個函數如int breakchain(參數列表自定義); 對任一個給定的鏈條,返回斷開鏈條的最低成本,比如上面的例子中, 需要返回最低成本5 假設:
  • N是整數,范圍[5,100000] A的元素是范圍在[1,1000000000]的整數

3.編程:順時針環繞列印矩陣元素 給定一個整數元素組成的矩陣,寫一個函數,返回一個數組,數組中的元 素是按照順時針遍歷矩陣中的元素而組成。例如如下的3x4矩陣: 2, 3, 4, 8 5, 7, 9, 12 1, 0, 6, 10
得到的數組的元素按照順序是“2, 3, 4, 8, 12, 10, 6, 0, 1, 5, 7, 9”.

我讀完該題的時候腦子里面想到了《算法競賽 入門經典 第2版》里面P40頁的蛇形填數問題。
即:在n * n方陣里填入1,2,…,n*n,要求填成蛇形。例如,n=4時方陣為:

10  11  12  19  16  13  28  15  14  37   6   5  4
#include <iostream>
#include <string.h>
#include <stdio.h>
#include <stdlib.h>
#define maxn 20
int a[maxn][maxn];
using namespace std;int main()
{int n,x,y,tot = 0;scanf("%d",&n);memset(a,0,sizeof(a));tot = a[x=0][y=n-1] = 1;while(tot < n*n){while(x+1 < n && !a[x+1][y]) a[++x][y]=++tot;while(y-1 >=0 && !a[x][y-1]) a[x][--y]=++tot;while(x-1 >=0 && !a[x-1][y]) a[--x][y]=++tot;while(y+1 < n && !a[x][y+1]) a[x][++y]=++tot;}for(x = 0;x < n;x++){for(y=0;y<n;y++)printf("%3d",a[x][y]);printf("\n");}return 0;
}

當然這道題可以參考蛇形填數來進行改編

4.編程:最大方形長度 給定一個元素是布爾型大小為NM的矩陣A。大小為L的方形可以放置在A 中的(X,Y)處,如果滿足: 0 < L <= min(N,M) - 1 0 <= X <= N-L 0 <= Y <= M-L A[X+i][Y+j] = true, 0 <= i
< L, 0 <= j < L 如果L能被放置在(X,Y)以及(X+1,Y)或者(X,Y+1),我們說它可以被
從(X,Y)移動到(X+1,Y)或者(X,Y+1)。 我們想找出滿足以下條件的最大的L: L可以被放置在(0,0)(假如此處為true)
它可以被經過一系列的移動,從(0,0)到達(N-L,M-L)
換言之,我們想找到最大的方形,可以從為true的左上移動到為true的右下,該方形覆蓋的區域都是true,移動方式是向下或者向右移動。一個極端情況是如果矩陣A中的元素全部是true,那
么L = min(N,M) - 1。 寫一個函數:比如int moveSquare(參數列表自定義); 返回值為L。 比如:
A[0][0]=true A[0][1]=true A[0][2]=true A[0][3]=false A[1][0]=true
A[1][1]=true A[1][2]=true A[1][3]=false A[2][0]=true A[2][1]=true
A[2][2]=true A[2][3]=false A[3][0]=true A[3][1]=true A[3][2]=true
A[3][3]=true A[4][0]=false A[4][1]=true A[4][2]=true A[4][3]=true
A[5][0]=true A[5][1]=false A[5][2]=true A[5][3]=true 返回 2
A[0][0]=true A[0][1]=true A[0][2]=false A[0][3]=false A[1][0]=true
A[1][1]=false A[1][2]=false A[1][3]=false A[2][0]=false
A[2][1]=true A[2][2]=false A[2][3]=true 返回 0 A[1][1]=true 返回 1
假設N和M是范圍為[1,200]的整數

5.*問答題(建議編程實現)

假設你站在120層摩天大樓的天臺,手握兩個iphone
x,并且可輕易到達任一樓層的陽臺。請用最少的嘗試次數nTry,確定能夠讓iphone自由下落而不會摔壞的最高層數nMaxLayer。比如20層摔不壞,21層摔壞,則nMaxLayer=21。在嘗試中你可以摔壞這兩個iphone,只要能得到答案。請說明最壞情況需要多少次嘗試以及你的思路。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/378939.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/378939.shtml
英文地址,請注明出處:http://en.pswp.cn/news/378939.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Java String startsWith()方法與示例

字符串startsWith()方法 (String startsWith() Method) startsWith() method is a String class method, it is used to check whether a given string starts with specific character sequences or not. startsWith()方法是一個String類方法&#xff0c;用于檢查給定的字符串…

mysql inception web_基于Inception搭建MySQL SQL審核平臺Yearing

Inception1. Inceptionj簡介Inception是一款針對MySQL的SQL語句審核自動化運維工具。使用Inception&#xff0c;將會給DBA帶來更大的便利性&#xff0c;將DBA從繁冗的工作中解放出來&#xff0c;做更多的自動化工作&#xff0c;或者從架構方面研究如何更大程度地保證數據庫的高…

C---日常練習

若有以下定義語句&#xff1a;int a5;printf("%d\n",a);則輸出結果是&#xff08;&#xff09; 解析&#xff1a;a 即先使用再自增&#xff0c;a的初始值即為5&#xff0c;則先使用&#xff0c;輸出結果為5 舉個例子&#xff1a; int a5,b; ba;//等價于 ba;aa1 prin…

VS2010 運行庫設置

如下圖所示&#xff0c;當在一個EXE工程中調用lib或dll時&#xff0c;2個工程的下面選項一定要一致&#xff0c;否則會導致exe工程編譯不過。 原則&#xff1a; Debug下&#xff0c;默認是MTd&#xff1b; Release下&#xff0c;默認是MT。 轉載于:https://www.cnblogs.com/lgh…

算法中的Strassen矩陣乘法

Introduction 介紹 Strassen in 1969 which gives an overview that how we can find the multiplication of two 2*2 dimension matrix by the brute-force algorithm. But by using divide and conquer technique the overall complexity for multiplication two matrices i…

零拷貝、mmap、sendfile

目錄零拷貝mmapsendFile總結零拷貝 要了解零拷貝&#xff0c;首先得先了解一下傳統 IO 的執行流程&#xff0c;這里舉個例子&#xff0c;通過傳統的 IO 進行網絡傳輸來傳輸一個文件。 先上一張圖&#xff0c;這張圖就代表了傳統 IO 傳輸文件的流程。 讀取文件的時候&#xf…

網頁服務器和mysql服務器_實現Web服務器之間使用同一個MYSQL和相同的網頁配置文件的方法...

實現Web服務器之間使用同一個MYSQL和相同的網頁配置文件的方法發布時間&#xff1a;2020-04-15 16:42:41來源&#xff1a;億速云閱讀&#xff1a;133作者&#xff1a;三月欄目&#xff1a;數據庫億速云負載均衡(Cloud Load Balancer)是對多臺云服務器進行流量分發的服務。億速云…

傳128GB版iPad4售價為799/929美元

外媒9to5mac報道&#xff0c;蘋果將推出一款升級版iPad4&#xff0c;外觀和iPad 4相同&#xff0c;還是黑白兩色的&#xff0c;只加入了新的SKU。 據報道&#xff0c;這款升級版iPad4還有128GB版&#xff0c;隨著這條消息傳出&#xff0c;不久關于128GB版iPad4的售價信息也傳出…

(西工程-金花)小米路由器連接哆點設置WiFi保姆式教程

小米路由器連接電源,用根網線一端插入寢室的網口處,另一端插入小米路由器的WAN口手機或者電腦連接WiFi,我這里是通過手機瀏覽器打開192.168.31.1進入無線路由器管理頁面進行配置小米路由器&#xff0c;配置WiFi的一些基本參數,例如:WiFi名稱,密碼之類的信息 進入無線路由器管理…

基于MINA框架快速開發網絡應用程序

1&#xff0e;MINA框架簡介 Netty、Mina、Cindy都是不錯的NIO開源框架&#xff0c;后兩者都是在Netty的基礎上演化出來的。MINA(Multipurpose Infrastructure for Network Applications)是用于開發高性能和高可用性的網絡應用程序的基礎框架。通過使用MINA框架可以可以省下處理…

Python中@staticmethod和@classmethod之間的區別

classmethod裝飾器 (The classmethod Decorator) The classmethod decorator is an inbuilt function decorator that gets evaluated after the function is defined. The result of the evaluation shadows the function definition. The classmethods first argument is alw…

go 聲明二維數組_一篇文章了解Go語言中數組Arrays的使用內幕

概述與其他編程語言類似&#xff0c;Go語言也有數組array。Go語言中&#xff0c;數組的行為和其他語言沒有什么不同.Go語言中還有一個叫做切片slice的東西&#xff0c;它就像是對數組的引用。在本文中&#xff0c;我們將只研究數組。定義數組是同一類型元素的連續集合&#xff…

ffmpeg 使用ffplay 進行 hls 拉流 分析 1

ffmpeg 使用 ffplay 進行 hls 拉流 分析 1 從使用ffplay 調用 http://192.168.1.100:8080/live/livestream.m3u8 開始&#xff0c;進入到ffmpeg 的分析使用的協議選擇相應的解復用器的步驟。 其他協議或者文件方式的使用ffplay也是這個步驟流程的。 目錄&#xff1a;一、流程圖…

搜狗輸入法輸出特殊符號快捷鍵

https://www.petefreitag.com/cheatsheets/ascii-codes/ 參考上個編碼網站大全 詳細步驟為&#xff1a;alt長按 &#xff0b; 編碼數字 例如&#xff1a;平方的編碼為178-----長按alt178 即可&#xff0c;178是數字一個一個挨個按即可 常用的特殊符號如下&#xff1a; 平方&…

echo 12345678 | base64 產生的結果跟12345678真正的base64編碼不對

echo "12345678" | base64 產生的結果跟"12345678"真正的base64編碼不對 弄了好久才搞清楚&#xff0c;echo 命令是帶換行符的&#xff0c;改成echo -n "12345678" | base64就沒問題了轉載于:https://www.cnblogs.com/senix/archive/2013/01/30/…

[BuildRelease Management]CC.NET架構

一 CC.NET的操作流程 1) 等待Trigger的喚醒&#xff1b; 2&#xff09;從Source Control System查詢上次build以后的修改列表&#xff1b; 3&#xff09;如果任何修改被發現或是Trigger觸發類型為 force the build &#xff1a; 3.1&#xff09;為build產生一個label number&a…

python 入門到實踐期末考試常出現的考試內容_Python編程入門到實踐—列表篇(一)...

一、列表是什么&#xff1f;列表由一系列按特定順序排列的元素組成。可以創建包含字母表中所有字母、數字0-9或所有家庭成員姓名的列表&#xff1b;也可以將任何東西加入列表中&#xff0c;其中的元素之間可以沒有任何關系。列表通常包含多個元素&#xff0c;給列表指定一個表示…

c#中將集合寫入文本_在C#中將記錄插入MySQL數據庫

c#中將集合寫入文本In the last tutorial (how to connect with MySQL database in C#?), we learned about making the connection with MySQL database in C#. Here, in this tutorial, we will learn how to insert the records in MySQL database in C#? 在上一教程( 如何…

read/fread write/fwrite 的區別

fread就是通過read來實現的&#xff0c;fread是C語言的庫&#xff0c;而read是系統調用。 差別在read每次讀的數據是調用者要求的大小&#xff0c;比如調用者要求讀取10個字節數據&#xff0c;read就會從內核緩沖區&#xff08;操作系統開辟的一段空間用來存儲磁盤上的數據&am…

如何在子網中訪問上層網絡的計算機文件夾

場景 公司路由器A&#xff0c;直接接外部網線&#xff0c;內部ip192.168.11.1&#xff0c;lan口又接了路由器A1&#xff0c;IP為192.168.11.2&#xff0c;A1的lan端口接了一臺電腦A&#xff0c;Ip為192.168.0.2&#xff0c;接了另外一個路由A2&#xff0c;Ip為192.168.11.3&…