面試的時候總會遇到手寫楊輝三角算法,當時是一臉懵逼,過了那么長時間,終于下定決心好好研究研究.
1.首先使用c++:
// 楊輝三角
void YangHuifunction(){
// 1. 初始化,都賦值為0
int arr[10][10];
for (int x = 0; x<10; x++) {
for (int y = 0; y< x; y++) {
arr[x][y] = 0;
}
}
// 2.設置每一行的第一列和最后一列都是 1
for (int i = 0;i<=10 ;i++) {
arr[i][0] = 1;
arr[i][i] = 1;
}
// 3.賦值
for (int i = 2; i<10; i++) {
for (int j = 1; j< i; j++) {
// 等于上一行的第j-1列和第j列的和
arr[i][j] = arr[i-1][j-1] + arr[i-1][j];
}
}
// 4.打印結果
for (int x = 0; x<10; x++) {
for (int y = 0; y<= x; y++) {
cout<<arr[x][y]<< " " ;
}
cout<<endl;
}
}
2.swift語言:
func YangHuiFunction(){
// 1.初始化
let n = 10
// 根據行數(shù)初始化一個二維數(shù)組
var arr = [[Int]](repeating: [], count: n)
// 根據每一行個數(shù)初始化每一行
for i in 0..<arr.count
{
arr[i] += [Int](repeating: 0, count: i + 1)
}
// 2.賦值
for i in 0..<arr.count
{
for j in 0..<arr[i].count
{
if j == 0 || j == i
{
arr[i][j] = 1
}
else {
arr[i][j] = arr[i - 1][j - 1] + arr[i - 1][j]
}
}
}
// 3.打印
for i in 0..<arr.count {
// 當前行開始打印前膳音,打印一定的空格
for _ in 0..<arr.count - 1 - i {
print(" ", terminator: "") }
// 打印當前行的數(shù)字
for j in arr[i] {
print(j, terminator: " ")
}
// 換行
print("")
}
}