C語言算法(1)-蛇形矩陣


題目來自:C語言網

題目描述

蛇形矩陣是由1開始的自然數依次排列成的一個矩陣上三角形。
 
輸入
本題有多組數據,每組數據由一個正整數N組成。(N不大於100)
 
輸出
對於每一組數據,輸出一個N行的蛇形矩陣。兩組輸出之間不要額外的空行。矩陣三角中同一行的數字用一個空格分開。行尾不要多余的空格。
 
樣例輸入
5
樣例輸出
1 3 6 10 15
2 5 9 14
4 8 13
7 12
11
我在做這道題的時候想到是用數組來做,但是用數組其實是比較繁瑣的。
隨即我就想出了另一種算法,是不用數組的
解析
2 3 4 5  第一行是第一個數➕2得到第二個數。。。
1 3 6 10 15
3 4 5    第二行是第一個數+3得到第二個數。。。
2 5 9 14
4 8 13
7 12
11
依次類推就能得出他的規律,只要規律找出來了,其實寫程序就非常簡單了
以下貼出源碼👇
 1 #include <stdio.h>
 2 int main ()
 3 {
 4     int n,i,j,m,s,k;
 5     scanf("%d",&n);
 6     s=1;m=1;
 7     for(i=1;i<=n;i++)
 8     {
 9         m=s;        //m是要輸出的每一項,s是第一列里的每兩項的差值,k是每一行的兩項的差值
10         s=s+i;       
11         k=i+1;
12 
13         for(j=i;j<=n;j++)
14         {
15             if(j==n)
16             {
17                 printf("%3d\n",m);
18             }
19             else
20             {
21                 printf("%3d",m);
22             }
23             m+=k;
24             k++;
25         }
26     }
27     return 0;
28 }

 



免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM