------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
题意:给一个字符串,求它是在第几个图中的哪个位置,每个图与之前图的关系类似于将之前图分割四份,变为新图。
思路:题目找规律,首先确定维数,字符串多长就有多少维度,然后确定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); } }