C++绘制菱形(曼哈顿距离求解:贼快!!!)
生活随笔
收集整理的這篇文章主要介紹了
C++绘制菱形(曼哈顿距离求解:贼快!!!)
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
思路:
1.雙重for循環(huán)遍歷輸出是最基本的
2.了解曼哈頓距離
(1)菱形的輸入一定是奇數(shù)
(2)我們是思想是填充 *
怎么填呢?我們來畫圖看看?
以 3*3 的矩陣為例子!
?我們來看看 距離是怎么定義的
類比下走格子,從某一個(gè)格子出發(fā)走多少個(gè)格子才能到達(dá)我們的目的地(只能一個(gè)一個(gè)格子走哦)
我們找最中間的那個(gè)格子,算下其他格子到這個(gè)最中心格子的距離
?以5 * 5為例子:
?
?
?也就是說 我們需要填充的 * 是曼哈頓距離小于 n/2 的格子。(n為菱形的行數(shù))
最后:
引出一個(gè)公式:?
?x0 y0 是中心點(diǎn)
建立合適的直角坐標(biāo)系,x就是為i,y就為j,從0開始遍歷起。
#include <cstdio> #include <iostream> using namespace std; int main() {int n;cin >> n;int cx=n/2,cy=n/2;for(int i=0;i<n;i++) {for(int j=0;j<n;j++) {if ((abs(cx-i)+abs(cy-j))<=n/2) cout << '*';else cout << " ";}cout << endl;} }總結(jié)
以上是生活随笔為你收集整理的C++绘制菱形(曼哈顿距离求解:贼快!!!)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 液位控制系统matlab仿真,模糊液位控
- 下一篇: dataframe的object类型