1072 棋盤問題

來源:互聯網
上載者:User
 
描述

輸入三個自然數n,i,j(1<=i<=n,1<=j<=n).n表示有一個n行n列的棋盤格子,(i,j)表示棋盤中格子的位置如:n=4,i=2,j=3表示了棋盤中的第二行第三列的格子,如:

(2,3)表示該格為第2行第3列

要求編製一個程式,根據輸入的n,i,j的值,輸出與格子(i,j)在同一行、同一列、同一對角線上的所有格子位置,例如:當n=4,i=2,j=3時,輸出的結果是: (2,1)(2,2)(2,3)(2,4) {同一行格子的位置} (1,3)(2,3)(3,3)(4,3) {同一列格子的位置} (1,2)(2,3)(3,4) {左上到右下對角線上的格子位置} (4,1)(3,2)(2,3)(1,4) {左下到右上對角線上的格子位置}

輸入

包含多組資料, n=? i=? j=? 每個數一行以n=0結束

輸出

根據輸入的n,i,j的值,輸出與格子(i,j)在同一行、同一列、同一對角線上的所有格子位置每組測試資料輸入四行,分別是: {同一行格子的位置} {同一列格子的位置} {左上到右下對角線上的格子位置} {左下到右上對角線上的格子位置}

每個位置用一個半形小括弧括起來,相鄰的位置之間沒有別的字元

範例輸入
n=4i=2j=3
範例輸出
(2,1)(2,2)(2,3)(2,4)(1,3)(2,3)(3,3)(4,3)(1,2)(2,3)(3,4)(4,1)(3,2)(2,3)(1,4)
來源
NOIP96(by Rz)

 

簡單的尋找題目,注意邊界條件即可

#include <stdio.h>  #include<math.h>main()  {  int   n,i,j;int   k,l;char a,b;scanf("%c%c%d",&a,&b,&n);   while(n!=0)  {         getchar();scanf("%c%c%d",&a,&b,&i);getchar();scanf("%c%c%d",&a,&b,&j);getchar();for(k=1;k<=n;k++)  {  printf("(%d,%d)",i,k);}       printf("\n");for(k=1;k<=n;k++)  {  printf("(%d,%d)",k,j);}  printf("\n");for(k=1;k<=n;k++)  for(l=1;l<=n;l++)  {  if((l-k)==abs(i-j))  {  if(i>j)  printf("(%d,%d)",l,k); else  printf("(%d,%d)",k,l);}  }  printf("\n"); for(k=n;k>=1;k--)  for(l=1;l<=n;l++)  {  if((l+k)==(i+j))  printf("(%d,%d)",k,l);}  printf("\n"); scanf("%c%c%d",&a,&b,&n);}  return   0;  }  

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.