UVa 11221 - Magic square palindromes.

来源:互联网 发布:php 使用aes加密 编辑:程序博客网 时间:2024/06/05 04:57

題目:給你一串字符,判斷裡面的字符是否按順序組成一個方陣,使從左上角沿著行和列方向;

            從右下角沿著行和列逆向讀,所得的結果是一樣的,只有字母有意義。

分析:簡單題,字符串。直接存到二位的數組裡面,比對對角線和中心對稱等情況。

說明:╮(╯▽╰)╭。

#include <cstring>#include <cstdio>char buf[10001],maps[101][101];int main(){int T;scanf("%d",&T);getchar();for (int t = 1; t <= T; ++ t) {gets(buf);//去掉非法字符 int save = 0, line = 0;for (int i = 0; buf[i]; ++ i)if (buf[i] >= 'a' && buf[i] <= 'z')buf[save ++] = buf[i];buf[save] = 0;//判断完全平方数 for (int i = 1; i <= 100; ++ i)if (i*i == save) {line = i;break;}if (line) {for (int i = 0; i < line; ++ i)for (int j = 0; j < line; ++ j)maps[i][j] = buf[i*line+j];for (int i = 0; i < line; ++ i)for (int j = 0; j < line; ++ j)if (maps[i][j] != maps[j][i])line = 0;else if (maps[i][j] != maps[line-1-i][line-1-j])line = 0;else if (maps[j][i] != maps[line-1-i][line-1-j])line = 0;}printf("Case #%d:\n",t);if (line)printf("%d\n",line);else printf("No magic :(\n");}    return 0;}


0 0
原创粉丝点击