首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計疑難解答

C++ 輸出倒三角形:根據星號總數反推行數並打印

     編輯:程式設計疑難解答

題目

輸入星號總數 N,輸出倒三角形,星號總數恰為 N。第一行星號數由 N 反推。

數學關係

倒三角形前 k 行星號總和:`S(k) = k*(2*first - (k-1))/2` (等差數列,公差 -2)。
若要求完整倒三角 (最後一行 1 或 2 顆),可解方程求行數。題目允許最後一行不完整。

參考代碼


#include 
#include 
using namespace std;

int main() {
    int n; cout << "請輸入*總數: "; cin >> n;
    if (n <= 0) return 0;
    // 估算完整行數 det = floor((-1 + sqrt(1+8n))/2)
    int det = (int)((-1 + sqrt(1 + 8.0*n)) / 2);
    int lastRow = n - det*(det+1)/2; // 最後一行星號數 (可能不完整)
    
    // 輸出最後一行 (最底行)
    for (int i=0; i

說明

代碼先輸出不完整的底行,再輸出上方完整行,確保總星號數 = n。頭文件自行添加 `` ``。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved