码迷,mamicode.com
首页 > 其他好文 > 详细

UVALive 7431(递推&递归_C题)解题报告

时间:2018-01-25 00:27:09      阅读:161      评论:0      收藏:0      [点我收藏+]

标签:ref   pen   解题报告   post   size   分享图片   gif   itemid   display   

题目链接:https://icpcarchive.ecs.baylor.edu/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=5453

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

题意:给一个字符串,求它是在第几个图中的哪个位置,每个图与之前图的关系类似于将之前图分割四份,变为新图。

思路:题目找规律,首先确定维数,字符串多长就有多少维度,然后确定x和y坐标。x的值是由模2为1的值的位数加上2的位数此方得到。y值是由大于等于2的数目确定的2的位数次方得到。

代码:

技术分享图片
#include<cstdio>
#include<cstring>  
#include<cmath>

 

const int MAXN =30;
char s[MAXN]={0};


int main(void)
{
    
    while(~scanf("%s",s)){
        int n=0;
        int x=0;
        int y=0;
        n =strlen(s);
        int calx[n]={0};
        int caly[n]={0};
        for(int j=0;j<n;j++){
            calx[j]=s[j]-0;
            caly[j]=s[j]-0;
        }
        for(int i=0;i<n;i++){        
            if(calx[i]%2==1) calx[i]=1;
            else    calx[i]=0;
            if(caly[i]>=2)    caly[i]=1;
            else    caly[i]=0;
        }
        for(int k=0;k<n;k++){
            if(calx[k])    x+=pow(2,(n-k-1));
            if(caly[k])    y+=pow(2,(n-k-1));
        }
    printf("%d %d %d\n",n,x,y);
    }
    
}
View Code

 

UVALive 7431(递推&递归_C题)解题报告

标签:ref   pen   解题报告   post   size   分享图片   gif   itemid   display   

原文地址:https://www.cnblogs.com/caomingpei/p/8343718.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!