《C++程序设计》中的题目, 输出一个金字塔。本人刚学C++, 写在这里仅供个人日后参考, 希望各位不吝赐教。
#include <iostream>
#include <cmath>
#include <iomanip>
// 输出一个满足规律的金字塔三角
int main() {
int fl = 9;
int wid = 2*fl -1;
int half_wid = floor(wid/2);
int m=0;
// std::cout << half_wid << std::endl << std::endl;
for (int i = 0; i < fl; i++){
m = -1;
for (int j = 0; j < wid; j++){
bool flag1 = j <= half_wid + i;
bool flag2 = j >= half_wid - i;
bool flag = flag1 && flag2;
if(flag){
if(j <= half_wid){
m++;
std::cout << std::setw(4) << pow(2, m);
}
else {
m--;
std::cout << std::setw(4) << pow(2, m);
}
}
else{
std::cout << std::setw(4) << " ";
}
}
std::cout << std::endl;
}
return 0;
}