日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

数字三角形 (15 分)

發布時間:2023/12/8 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 数字三角形 (15 分) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

代碼長度限制 16 KB
時間限制 400 ms
內存限制 64 MB

題目描述

給出n,請輸出一個直角邊長度是n的數字直角三角形。所有數字都是 2 位組成的,如果沒有 2 位則加上前導 0。

輸入格式

輸入為一個正整數n,1≤n≤100。

輸出格式

輸出為直角邊長度是n的數字直角三角形,所有數字都是 2 位組成的,如果沒有 2 位則加上前導 0,且當數字超過20時,重新從1開始。

輸入樣例

5

輸出樣例

1514100901
13110802
120703
0604
05

個人思路

  • 先算出第一行第一個數字,這里要注意不能為0的情況
  • 根據不大于20,不斷減小的規則交替存入一個二維數組的每一行。這里是做第一步處理,方便后面直接輸出
  • 根據n的奇偶性逐列輸出或逐行倒著輸出
  • #include<bits/stdc++.h> using namespace std; int main() {int n;cin>>n;int t=n*(n+1)/2%20;if(t==0)t=20;vector<vector<int>> vv;for(int i=0;i<n;i++){vector<int> v;for(int j=0;j<=i;j++){v.push_back(t);t--;if(t==0)t=20;}vv.push_back(v);}vector<vector<int>> vans;for(int i=0;i<n;i++){vector<int> v;if(i%2==0)for(int j=0;j<vv[i].size();j++){v.push_back(vv[i][j]);}else{for(int j=vv[i].size()-1;j>=0;j--){v.push_back(vv[i][j]);}}vans.push_back(v);}for(int i=0;i<n;i++){for(int j=0;j<vv[n-i-1].size();j++){if(n%2==1)printf("%02d",vans[i+j][j]);elseprintf("%02d",vans[i+j][i]);}cout<<endl;} }

    總結

    以上是生活随笔為你收集整理的数字三角形 (15 分)的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。