现在的位置: 首页 > 综合 > 正文

POJ 3752 字母旋转游戏

2013年12月20日 ⁄ 综合 ⁄ 共 890字 ⁄ 字号 评论关闭
字母旋转游戏
Time Limit: 1000MS   Memory Limit: 65536K
Total Submissions: 7053   Accepted: 2642

Description

给定两个整数M,N,生成一个M*N的矩阵,矩阵中元素取值为A至Z的26个字母中的一个,A在左上角,其余各数按顺时针方向旋转前进,依次递增放置,当超过26时又从A开始填充。例如,当M=5,N=8时,矩阵中的内容如下:
   A   B   C   D   E   F   G   H
    V   W   X   Y   Z   A   B   I
    U   J   K   L   M   N   C   J
    T   I   H   G   F   E   D   K
    S   R   Q   P   O   N   M   L

Input

M为行数,N为列数,其中M,N都为大于0的整数。

Output

分行输出相应的结果

Sample Input

4 9

Sample Output

   A   B   C   D   E   F   G   H   I
   V   W   X   Y   Z   A   B   C   J
   U   J   I   H   G   F   E   D   K
   T   S   R   Q   P   O   N   M   L

水题一道,初学C语言二维数组时写的蛇形矩阵
个人认为自己代码写的还是蛮漂亮的,最早是在刘汝佳的《算法竞赛入门经典》上看到这种写法

 1 #include<iostream>
 2 #include<cstdio>
 3 #include<cmath>
 4 
 5 using namespace std;
 6 
 7 const double pi=3.141592653589793;
 8 
 9 double length(double x1,double y1,double x2,double y2)
10 {
11     return sqrt((x2-x1)*(x2-x1)+(y2-y1)*(y2-y1));
12 }
13 
14 int main()
15 {
16     double x1,y1,x2,y2,x3,y3,a,b,c,p,S,D,C;
17 
18     while(cin>>x1>>y1>>x2>>y2>>x3>>y3)
19     {
20         a=length(x1,y1,x2,y2);
21         b=length(x2,y2,x3,y3);
22         c=length(x3,y3,x1,y1);
23         p=(a+b+c)/2;
24         S=sqrt(p*(p-a)*(p-b)*(p-c));
25         D=a*b*c/2/S;
26         C=pi*D;
27         printf("%.2f\n",C);
28     }
29 
30     return 0;
31 }

[C]

 

抱歉!评论已关闭.