2015-10-06 37 views
0

我有一個問題,要求我編寫一個C++程序,使用for循環,在代碼中使用少於3個「cout」語句來打印以下模式忽略管道,將不會出現在星號沒有他們):在模式中打印「*」和其相反

| *

| ***

| *****

| *******

| **** *****

| *********

| *******

| *****

| ***

| *

這是我用於斐波納契發生器的代碼,我覺得它可能類似。我可以打印「*」符號,但不能用水平線顯示。我最需要幫助的是扭轉輸出。正如如果給定數n,我想該系列去N個數入編,然後回落到0

#include <iostream> 
using namespace std; 

int main() 
{ 
    int y = 1, sum = 1, n; 

    cout << "Enter the number of terms you want" << endl; 
    cin >> n; 

    cout << "First " << n << " terms are :- " << endl; 

    for (int x = 0; x < n; x++) { 

     cout << "\n" <<endl; 


     for (int i = 0; i < sum; i++) { 
      cout << "*" << endl; 
     } 

     sum = y + 2; 
     y = sum; 
    } 
} 
+0

'cout << string('*',k)''會打印'k'星號但這可能不是你的老師想要的東西(提到了循環) –

+0

順便說一句,你有沒有學過關於函數或遞歸的知識? –

回答

0

看來這是一個家庭作業,所以我給了一些線索,而不是一個完整的解決方案。

  • 對於在一行打印* S,請注意,<< endl將結束在輸出線,即打印換行符。 (順便提一句,<< "\n"也是如此。)並非每個cout聲明都必須在末尾有一個<< endl
  • 對於斐波那契序列的逆轉,一旦您擁有變量sum中的最後一個數字,只需進行反向計算(即減法)即可。這可以在第二組循環中完成,但是,因爲你不應該太頻繁地使用cout語句,所以你最好通過使用一些額外的變量保持當前狀態重用相同的循環(即如果你正在向上計數或向下)並使用if來決定要執行的計算。 (我讀了這樣的要求,只有cout語句打印模式計數爲「少於三」= 2)