問題描述 :
“明明,你會用1到9這九個數字組成一個三角形嗎?”明明的爸爸問明明。明明被問的很莫名其妙,不明白他爸爸在說什麼,於是就問道:“用1到9組成三角形???”“是的,我的要求很簡單,給你2個數,一個數作爲這個三角形的開始,另一個數決定這個三角形的大小。例如我給你5和6這兩個數,你就要組成如下的一個三角形:
5
6 7
8 9 1
2 3 4 5
6 7 8 9 1
2 3 4 5 6 7
明白了嗎?”
明明觀察了許久,終於看出了門道來,說道:“就是說給我2個數,例如5和6,那我就要從5這個數開始構建一個三角形。第一行爲一個數字,第二行爲2個數字,以此類推,直到第六行的六個數字,且三角形中的數字都是1到9在循環重複,是這樣嗎?”“明明真聰明,就是這樣。”明明爸爸高興的說道。於是明明的爸爸給了明明很多組這樣的數字,明明也構建出了很多個不同的三角形。
你能像明明那樣,寫一個程序來構建上面的三角形嗎?
輸入說明 :
你寫的程序要求從標準輸入設備中讀入測試數據作爲你所寫程序的輸入數據。標準輸入設備中有多組測試數據,每組測試數據僅有一行,每行有兩個整數s和n(1≤s≤9,1≤n≤80),其中s表示位於三角形的最頂端的數字,n表示三角形由幾行數字組成。每組測試數據與其後一組測試數據之間沒有任何空行,第一組測試數據前面以及最後一組測試數據後面也都沒有任何空行。
輸出說明 :
對於每一組測試數據,你寫的程序要求計算出一組相應的運算結果,並將每組運算結果作爲你所寫程序的輸出數據依次寫入到標準輸出設備中。每組運算結果爲構建出來的三角形,三角形中的同一行的數字兩兩之間用一個空格隔開。每組運算結果與其後一組運算結果之間有一個空行,最後一組運算結果後面沒有空行。
注:通常,顯示屏爲標準輸出設備。
輸入範例 :
1 5
5 6
輸出範例 :
1
2 3
4 5 6
7 8 9 1
2 3 4 5 6
5
6 7
8 9 1
2 3 4 5
6 7 8 9 1
2 3 4 5 6 7
c源碼:
#include<stdio.h>
#include<math.h>
#include<string.h>
#include<stdlib.h>
int main()
{
int t,n,m,i,j,a[82][82];
while(scanf("%d%d",&n,&m)!=EOF)
{
a[0][0]=n;
for(i=1;i<m;i++)
for(j=0;j<=i;j++)
{ n++;
if(n>9)
{
n=1;
}
a[i][j]=n;
}
for(i=0;i<m;i++)
{ for(j=0;j<i;j++)
{
printf("%d ",a[i][j]);
}
printf("%d\n",a[i][i]);
}
printf("\n");
}
return 0;
}