题解 | #蛇形矩阵#

蛇形矩阵

http://www.nowcoder.com/practice/649b210ef44446e3b1cd1be6fa4cab5e

二维遍历即可,注意要能推导出等差数列的公式(再减去行号-1)
等差数列规律,以途中18为例:从最左边一列依次+1,到路口向右再依次+1。
注意最后还要减去那个没算进来的的‘4’(即行号)。
整理后公式为:(i+j)*(i+j-1)/2  -i +1 
#include<bits/stdc++.h>  //蛇形用等差数列观察,规律很nice~
using namespace std;

int main(){
    int n;
    while(cin>>n){
        vector<vector<int>> v(n+1,vector<int>(n+1,0));
        for(int i=1;i<=n;i++){
            for(int j=1;j<=n-i+1;j++){
                if(j!=1) cout<<' ';
                cout<<(i+j)*(i+j-1)/2 -i+1;
            }
            cout<<endl;
        }
    }
}


全部评论

相关推荐

抱抱碍事梨a:三点建议,第一点是建议再做一个项目,把自我介绍部分顶了,第二点是中南大学加黑加粗,第三点是建议加v详细交流
点赞 评论 收藏
分享
我就是0offer糕手:北大不乱杀
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务