1. 程式人生 > >《演算法導論》第二章第一節練習題——同位二進位制數相加

《演算法導論》第二章第一節練習題——同位二進位制數相加

需求:

用兩個同長度為n的int陣列描述兩個同位二進位制數。

用一個長度為n+1的陣列表示這兩個陣列以二進位制相加

#include<stdio.h>
#define N 8
int main(void) {
	int A[N] = {1,0,0,1,0,1,1,1};
	int B[N] = {1,1,0,0,1,0,0,1};
	int C[N+1] = {0,0,0,0,0,0,0,0,0};
	
	int temp = 0;
	for(int i=N;i>0;i--) {
		C[i] = A[N-1] + B[N-1] + temp;		//算出一位的值,用temp表示進位
		if(C[i]>1) {
			C[i] %= 2;
			temp = 1;
		} else {
			temp = 0;
		}
	}
	C[0] = temp;
	
	for(int i=0;i<=N;i++) {
		printf("%d ",C[i]);
	}
}


相關推薦

演算法導論第二第一練習題——二進位制相加

需求: 用兩個同長度為n的int陣列描述兩個同位二進位制數。 用一個長度為n+1的陣列表示這兩個陣列以二進位制相加 #include<stdio.h> #define N 8 int m

第二 第一 語言基礎

文件名 很多 事情 產生 關於 路徑 stat brush 發出 1、註釋   註釋指的是一些描述代碼的文字。   我們可以把對代碼的各方面描述,都寫成代碼的註釋。註釋中經典的內容包括:這段代碼是如何工作的、這段代碼使用了什麽算法、這段代碼的執行流程如何,等等。註釋不是Ja

演算法導論 第二演算法入門 筆記 (插入排序、迴圈不變式、演算法分析、最好和最壞時間複雜度、選擇排序、分治法、合併排序)

插入排序: 排序問題的定義如下: 輸入:N個數{a1, a2,..., an }。 輸出:輸入序列的一個排列{a'1 ,a'1 ,...,a'n },使得a'n <=a' n<=...<

演算法導論 第二 遞迴與分治

階乘函式  斐波那契數列 #include <iostream> #include <cstring> #include <algorithm> using namespace std; // 階乘函式 int fact(in

演算法導論 第二 迴圈不變式(loop invariant)

Next, we tackle the second property: showing that each iteration maintains the loop invariant. Informally, the body of the outer for loop works by moving

演算法導論第一第一習題(沒有答案)

1.1-1 給出一個真實世界的例子, 其中包含著下列某種計算問題:排序, 確定多矩陣相乘的最佳順序, 或者找出凸殼。 1.1-2 除了執行速度以外,在真實世界問題背景中,還可以使用哪些效率指標? 1.1-3 選擇你見過的某種資料結構, 討論一下其長處和侷限性。 1.1-4 上文中給出的最短路

演算法導論 第二十二:拓撲排序

拓撲排序(針對有向無迴路圖DAG)是深度優先搜尋的一個應用,其結果圖中所有頂點的一個線性排列。 虛擬碼如下: EG: 拓撲排序完整程式碼如下: #include<iostream> #include<iomanip> #include<

MIT演算法導論第二筆記

本節主要講了一些演算法分析的內容 4種漸近符號 求解遞迴式的三種方法:(P38) 1. 代換法(通常可以) 2. 遞迴樹方法(對所有都可以,但不嚴謹) 3. 主方法-主定理(只對特等的遞迴式有效,包含三種情況)

第二第一、相對路徑和絕對路徑及cd、mkdir/rmdir、rm命令

2018-03-26相對路徑和絕對路徑 絕對路徑和相對路徑除了需要特別註意的FHS目錄配置外,在文件名部分我們也要特別註意喔!因為根據檔名寫法的不同,也可將所謂的路徑(path)定義為絕對路徑(absolute)和相對路徑(relative)。 這兩種文件名/路徑的寫法依據是這樣的: a、絕對路徑:由根目錄(

【軟件構造】第四第一 面向可理解性的構造

javadoc 搜索 顯示 div accounts nbsp 避免 模糊 質量 第四章第一節 面向可理解性的構造 Outline 代碼可理解性 編碼規範 Notes ## 代碼的可理解性 代碼的可理解性可以理解為代碼的可讀性。具體來說,可從以下幾個方面來看: 是否遵

【軟件構造】第七第一 健壯性和正確性的區別

日期 center 質量 ror lan 啟動 rec 失敗 erro 第七章第一節 健壯性和正確性的區別 第七章:進入軟件構造最關鍵的質量特性 ——健壯性和正確性。 本節在1-2節的基礎上,重申了Robustness and Correctness的重要性,澄清了二者之

【軟件構造】第八第一 軟件構造性能的度量原理

內存 指標 VM 優化 度量 垃圾回收 lin 時空 ava 第八章第一節 軟件構造性能的度量原理 本章是課程覆蓋的第5個質量指標:時空性能 這是大家最熟悉的指標,雖然很重要,但並非軟件構造中最重要的指標,當其他指標得以優化之後,再去考慮性能問題。 Outline 性能度

【計算機網絡】第一第一 計算機網絡的基本概念

事件 光纖 syn 描述 ID toc lin 方式 物理 第一章第一節 計算機網絡的基本概念 第一章概述了計算機網絡和因特網,這一章從整體上粗線條地勾畫出計算機網絡的概貌和全課程的框架 Outline 計算機網絡的具體構成描述 協議 Notes ## 計算機網路的具體

二叉搜尋樹增刪節點《演算法導論》12.3

向二叉搜尋樹增加一個節點是比較簡單的,每個新節點都會成為樹上的新葉子,我們要做的是從根開始,沿著一條路徑,抵達安放新葉子的正確位置。這條路徑是怎樣找到的呢? 路徑的起點自然是根節點了,把起點作為當前節點,和新節點比較大小,如果新節點較小,那麼新節點應該屬於當前節點的左子樹,於是選擇當前節點的左孩子作為新

軟體工程導論第二作業2.2

為方便儲戶,某銀行擬開發計算機儲蓄系統。儲戶填寫的存款單或取款單由業務員輸入系統,如果是存款,系統記錄存款人姓名、住址、存款型別、存款日期、利率等資訊,並印出存款單給儲戶;如果是取款,系統計算利息並印出利息清單給儲戶。   寫出問題定義並分析系統的可行性。 答:如果是存款,儲戶填寫

演算法導論》12.3習題

12.3-1 二叉搜尋樹insert操作的遞迴版本 void insert1(Node* pRoot, Node* pAdd) { bool bLeft = pAdd->key < pRoot->key; Node* pNextRoot = bLeft ? pRo

強化學習導論 第二 多臂賭博機問題

區分強化學習和其他種類的學習方式最顯著的特點是:在強化學習中,訓練資訊被用於評估動作的好壞,而不是用於指導到底該是什麼動作。這也是為何需要主動去做exploration的原因。純粹的評估性反饋可以表明一個動作的好壞、但並不能知道當前動作是否是最佳選擇或者是最差選擇。評估性反饋(包括evoluatio

第五 第一 spring-context之ApplicationContextEvent

前言 ApplicationListener是對application生命週期的監聽體制。 類依賴圖 ApplicationListener體系 ApplicationEvent體系 ApplicationEventMulticaster A

為什麼我要放棄javaScript資料結構與演算法第二)—— 陣列

第二章 陣列 幾乎所有的程式語言都原生支援陣列型別,因為陣列是最簡單的記憶體資料結構。JavaScript裡也有陣列型別,雖然它的第一個版本並沒有支援陣列。本章將深入學習陣列資料結構和它的能力。 為什麼用陣列 需求:儲存所在城市每個月的平均溫度,可以這麼實現 var averageTemp1 = 43.3;

php原始碼之路第六第一 (記憶體管理概述)

記憶體是計算機非常關鍵的部件之一,是暫時儲存程式以及資料的空間,CPU只有有限的暫存器可以用於儲存計算資料,而大部分的資料都是儲存在記憶體中的,程式執行都是在記憶體中進行的。和CPU計算能力一樣,記憶體也是決定計算效率的一個關鍵部分。 計算中的資源中主要包含: