C++輸出倒三角加數字
阿新 • • 發佈:2019-02-03
中興筆試題目:
#include<iostream> using namespace std; class Triangle { public: explicit Triangle(int n) : rows(n), sum(0), count(0), temp(0) { maxNum = rows*(rows + 1); } void TriangleOutput(); private: int rows; //行數 int maxNum; //表示三角中最大的數字 int sum; //自由變數 int count; int temp; }; void Triangle::TriangleOutput() { for (int r = 1;r <= rows;r++)//控制行 { for (int a = 0;a < r - 1;a++)//先輸出每行的”--“ cout << "--"; count = (4 * (rows - r) + 3);//用來快取第r行的數字和“*”的總個數 temp = (count + 1 )/ 2; for (int c = 1,left=sum+1, right = (maxNum - sum - rows + r)//每行右半三角的第一個值 ;c <=count; c++) { if (c <= temp) //左半三角 { if (c % 2 == 1) { cout << left; left++; } if (c % 2 == 0) cout << "*"; } if (c > temp) //右半三角 { if (c % 2 == 1) { cout << right; right++; } if (c % 2 == 0) cout << "*"; } } sum = sum + rows - r + 1;//得到左半三角的左右邊的值 cout << endl; } cout << endl; } int main() { int n(0); cout << "請輸入行數n:"; cin >> n; Triangle Tr(n); Tr.TriangleOutput(); return 0; }