程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> 倒數字三角,數字三角

倒數字三角,數字三角

編輯:C++入門知識

倒數字三角,數字三角


 描述 Description

以下的數字倒直角三角形是由二個數確定的:一個數是行數R,1<=R<=39,另一個是種子數S,1<=S<=9。S放在左上角,照著樣例輸出文件的樣子,寫一個程序,根據輸入的二個數打印出相應的數字倒直角三角形。

 

輸入格式 Input Format

單獨一行,二個用空格隔開的整數 

 

輸出格式 Output Format

輸出倒直角數字三角形,輸出時數字與數字之間不留空格字符。

 

樣例輸入 Sample Input

 

6 1

 

樣例輸出 Sample Output

 

124727
35838
6949
151
62
3

(由於顯示問題三角形應該是右對齊!!!)

 

時間限制 Time Limitation

1s

 

來源 Source

usaco 月賽

 

 

    一道比較剛的二維數組的題,對於剛學數組沒幾天的我看到這道題其實我是拒絕的,剛看完題我心裡就暗想,這TMD是啥,然後再仔細看了看才發現可以換一種思想來寫這道題

 

那就是將我們一慣把二位數組由行輸出的方式轉化成由列的方式輸出,這樣問題就可以解決了。

 

貼出代碼:

 1 #include <iostream>
 2 using namespace std;
 3 int s,r,a[50][50];
 4 void init()
 5 {
 6     cin>>r>>s;
 7     for(int i=1;i<=r;i++)
 8         for(int j=1;j<=i;j++)
 9         {
10             a[i][j]=s;     //第一個數
11             if(s<9)        //判斷 如果大於9就從1開始
12                 s++;
13             else
14                 s=1;
15         }
16 }
17 void work()
18 {
19     for(int j=1;j<=r;j++)  //控制列 從列輸出
20     {
21         for(int l=2;l<=j;l++)//控制行空格
22             cout<<' ';
23         for(int i=1;i<=r;i++)//控制行
24         {
25             if(a[i][j]!=0)   
26                 cout<<a[i][j];
27         }
28         cout<<endl;
29     }
30     
31 }
32 int main()
33 {
34     init();
35     work();
36     return 0;
37 }

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved