栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

poj 1048 Follow My Logic

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

poj 1048 Follow My Logic

#include <stdio.h>#include <string.h>#include <iostream>using namespace std; char pre[110][110];char num[30];int p;void getpoint(int &x, int &y){    for( int i = 0 ; i < 100 ; i++ )        for ( int j = 0 ; j < 100 ; j++ ) if ( '?' == pre[i][j] ) {     x= i;     y= j;     return; }}int find(int x, int y, int div, int flag){    switch(pre[x][y])    {        case 'o': return !find(x, y-1, -1, 2);        case '-': return find(x, y+div, div, flag);        case '|': return find(x+div, y, div, flag);        case ')': return find(x-1, y-3, -1, 2) & find(x+1, y-3, -1, 2);        case '>': return find(x-1, y-3, -1, 2) | find(x+1, y-3, -1, 2);        case '+': if ('-' == pre[x][y-1] && flag != 4 )     return find(x, y-1, -1, 2); else if ( '-' == pre[x][y+1] && flag != 2 )     return find(x, y+1, 1, 4); else if ( '|' == pre[x-1][y]  && flag != 1 )     return find(x-1, y, -1, 3); else     return find(x+1, y, 1, 1);        default: return num[ pre[x][y]-'A' ]-'0';    }}int main(){    memset(pre, 0, sizeof(pre));    while ( EOF != scanf("%[^n]%*c", pre[0]) )    {        int i, x, y, ans;        for ( i = 1; '*' != pre[i-1][0]; i++ ) gets(pre[i]);        getpoint(x, y);        while(gets(num), '*' != num[0])        { if ('-' == pre[x][y-1])     ans= find(x, y-1, -1, 2); else if ( '-' == pre[x][y+1])     ans= find(x, y+1, 1, 4); else if ( '|' == pre[x-1][y])     ans= find(x-1, y, -1, 3); else     ans= find(x+1, y, 1, 1); printf("%dn", ans);        }        putchar(10);        memset(pre, 0, sizeof(pre));    }    return 0;}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/378139.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号