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

Posted caomingpei

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了UVALive 7431(递推&递归_C题)解题报告相关的知识,希望对你有一定的参考价值。

题目链接: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题)解题报告的主要内容,如果未能解决你的问题,请参考以下文章

UVA 12034(递推&递归_I题)解题报告

HDU 2013(递推&递归_D题)解题报告

HDU 2044(递推&递归_A题)解题报告

UVALive 4727Jump

2018南京区域赛G题 Pyramid——找规律&&递推

递归基础_全排列(一般递推实现)