例題

類似巴斯卡(Pascal)三角形

下圖有點類似巴斯卡(Pascal)三角形。寫一程式輸入正整數N,而算出第N 行。
      1
     1 1
    1 2 1
   1 3 3 1
  1 4 5 4 1
 1 5 7 7 5 1
1 6 9 10 9 6 1
… … … … … … … … … … …

輸入
一個正整數N。(限制N<=1000)
輸出
N 個正整數,表示上述三角形的第N 行。


範例輸入
7
範例輸出
1 6 9 10 9 6 1


解題關鍵

雖然這是個例題,還是來跟他認真一下好了。

首先呢,先觀察這個特別的三角形有什麼規則。嗯,他不是巴斯卡三角形。不過沒有發現在每一行當中,數字差的差都是2呢?

好比說第七行:

1(+5)6(+3)9(+1)10(-1)9(-3)6(-5)1

這樣說夠明白了吧XD

程式碼參考

#include <stdio.h>
#include <stdlib.h>
 
int main()
{
   int i,j;
   while(scanf("%d",&i)!=EOF){
         if(i==1){                  
         }else{
            printf("1 ");i-=2;j=1+i; 
            while(j!=1){
                       
               printf("%d ",j);
               i-=2;
               j+=i;
            }    
         
         }
   printf("1\n");             
   }
   /*system("PAUSE");*/
   return 0;
}

發表迴響

在下方填入你的資料或按右方圖示以社群網站登入:

WordPress.com Logo

您的留言將使用 WordPress.com 帳號。 登出 / 變更 )

Twitter picture

您的留言將使用 Twitter 帳號。 登出 / 變更 )

Facebook照片

您的留言將使用 Facebook 帳號。 登出 / 變更 )

Google+ photo

您的留言將使用 Google+ 帳號。 登出 / 變更 )

連結到 %s

%d 位部落客按了讚: