tft每日頭條

 > 生活

 > 怎麼讓楊輝三角代碼居中

怎麼讓楊輝三角代碼居中

生活 更新时间:2024-09-18 16:51:24

楊輝三角,是中國古代數學的傑出研究成果之一,出現在中國南宋數學家楊輝1261年所著的《詳解九章算法》中,是二項式系數在三角形中的一種幾何排列,把組合内在的數字規律直觀地從圖形中體現出來。其主要規律(如圖示意)為:第n行有n個數,每行頭數和尾數均為1,其餘的數為上一行左右兩邊數之和,每行的數左右對稱。通過C 實現楊輝三角的方法很多,結合近期對vector的學習 ,通過vector定義n×n的數組來實現。

怎麼讓楊輝三角代碼居中(自學C第)1

該動圖來源百度圖片(侵删)

怎麼讓楊輝三角代碼居中(自學C第)2

編寫的程序&注解

怎麼讓楊輝三角代碼居中(自學C第)3

測試結果

知識點:

❶ vector<vector<int> >nums(n, vector<int>(n, 0)); 定義了一個vector容器,元素類型為vector,初始化為包含n個vector對象,每個對象又是一個新定義的vector對象的拷貝,而新定義的vector對象被初始化為n個0,由此定義一個n*n的二維數組。vector<int>& nums 其中vector為容器名稱,int為容器數據類型,nums為容器變量,nums表示未指定長度;nums(n)表示指定了長度。&表示傳入函數的是vector的物理地址,函數内部對vector改變時,原始的數據也會改變;vector<int> nums表示傳入函數的是vector的複制(複制品存入新的物理地址中),函數内部對vector改變時,原始的數據不會改變。

❷ vector ['vektər](向量/矢量)是封裝了一個能存放任意類型動态數組的順序容器(Sequence Container)。順序容器中的元素按照線性順序排序,可以通過元素在順序容器中的位置訪問對應的元素。vector 是C STL的一個重要的數據結構(動态的數組)。其頭文件為:#include<vector>。vector不需要動态操作内存,不用擔心内存洩露等問題。常見的幾種定義和使用方法:

vector<int>nums; //不指定長度 vector<int>nums(n); // 指定長度為n,每個元素的初值默認為0 vector<int>nums(n,1); // 指定長度為n,每個元素的初值為1 vector<int>nums{1,2,3,4,5}; //每個元素均賦初值 vector<vector<int> >nums {{1,2,3},{1,2,3}}; //二維數組每個元素均賦初值(注意空格) nums.size(); //獲得長數組度 nums.push_back(x); //從數組末端插入一個元素x(x為要插入的值) nums.pop_back(x); //從數組末端删掉一個元素 nums.clear(); //清空所有元素 nums.empty(); //判斷nums是否為空,空返回true nums.insert(nums.begin() i, x); //在第i 1個元素前面插入x nums.erase(nums.begin() 2); //删除第3個元素 nums.erase(nums.begin() i, nums.end() j); //删除區間[i,j)

❸ <iomanip> 是i/o流控制頭文件,i/o代表輸入/輸出,manip是manipulator(操縱器)的縮寫。對cin,cout等函數的一些操縱控制運算,一些常見的控制函數的:

//setw(n) 在輸出操作中設置字段寬度,寬度為n個字符,默認是右對齊 cout<<setw(6)<<1234<<endl; //輸出的結果:(空格)(空格)1234 //域寬n為6,1234占了4位,剩下2位用空格表示,如果n=7,剩下的3為用空格表示; cout<<setw(6)<<1234<<5678<<endl; //輸出的結果:(空格)(空格)123445678 //說明setw(n)設定域寬隻對其後的第一個<<(流插入運算符)中的内容有效 //Sets the number of characters to be used as thefield width for the next insertion operation. cout<<left<<setw(6)<<1234<<endl; //如果需要左對齊,在setw前加left cout<<'A'<<setw(3)<<'B'<<endl; // A後面輸出3個字符,B占一個字符,剩餘2個字符用空格填充

//setfill(char c) 在設定的域寬中,由字符c填充沒有占用的寬度 cout<<setfill('@')<<setw(6)<<1234<<endl; //輸出的結果:@@1234 cout<<setfill('*')<<setw(6)<<1234<<endl; //輸出的結果:**1234 cout<<'A'<<setfill('*')<<setw(3)<<'B'<<endl; //輸出的結果:A**B

//setbase(int n) : 将數字轉換為 n 進制,計算機一般的進制為8進制、10進制、16進制 cout<<setbase(8)<<1234<<endl; //輸出的結果:2322 cout<<setbase(16)<<1234<<endl; //輸出的結果:4d2

//setprecision(n)可控制輸出流顯示浮點數的數字個數,C 默認的流輸出數值有效位是6 double a = 7 / 3; cout << setprecision(1) << a << endl; //輸出的結果:2 cout << setprecision(4) << a << endl; //輸出的結果:2.333 (按四舍五入進行保留)

自學 C 第 1 課 數字大小排序

自學 C 第 2 課 數組包含關系

自學 C 第 3 課 正整數反序輸出

自學 C 第 4 課 計算體積及表面積

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关生活资讯推荐

热门生活资讯推荐

网友关注

Copyright 2023-2024 - www.tftnews.com All Rights Reserved