Qnumber

来源:互联网 发布:用户充值管理系统php 编辑:程序博客网 时间:2024/05/23 14:50

A:Qnumber

描述

12月23日是小H的女神的生日,最近小H都在烦恼着该送她什么样的生日礼物,但小H情商太低,始终没能想到一个很好的主意。

这天晚上,小H默默地对着1223这个数字看了很久很久,发现这个数字是一个ABBC的结构,而且A+1=B,B+1=C,他认为这种数非常有美感,于是称其为Q数。

“这还不够!”小H高呼,然后他就在Q数的基础上又定义了超Q数,即在Q数的基础上满足,组成这个数的B也为Q数。

小H开心的认为,许许多多的超Q数一定是一份很好的礼物,于是写下了一长串的超Q数,但是不幸的是,由于熬夜的原因,小H写下的数很多都并不是超Q数。于是小H找到了你,希望你能够帮助他找到哪些不是超Q数。


输入
第一行为一个整数N,表示小H写下的数的个数。
接下来的N行,每一行有一个位数不超过30的数,表示小H写下的每一个数。

N<=10
输出
对于每一个不是超Q数的输入,输出一行Pi,表示其在输出中的位置。\


直接模拟。
#include<cstdio>#include<cstring>#include<cstdlib>#include<cmath>#include<iostream>#include<algorithm>#define Maxn 40using namespace std;char s[Maxn][Maxn],ss[Maxn];int a;int b,b1;int c,n,len1=0;int len[Maxn];bool check4(){    if(a==b-1&&a==b1-1&&a==c-2)return true;return false;}bool check3(int x){    int i;    a=b=c=b1=0;    if(x%4==0){for(i=x-x/4+1;i<=x;i++)c=c*10+(ss[i]-'0');for(i=x/2+1;i<=x-x/4;i++){b=b*10+(ss[i]-'0');}for(i=x/4+1;i<=x/2;i++){b1=b1*10+(ss[i]-'0');}for(i=1;i<=x/4;i++)a=a*10+(ss[i]-'0');}else if(x%4==1){    for(i=x-x/4;i<=x;i++)c=c*10+(ss[i]-'0');for(i=x/4*2;i<=x-x/4-1;i++){b=b*10+(ss[i]-'0');}for(i=x/4+1;i<=x/4*2+1;i++){b1=b1*10+(ss[i]-'0');}for(i=1;i<=x/4;i++)a=a*10+(ss[i]-'0');}else if(x%4==3){    for(i=x-x/4;i<=x;i++)c=c*10+(ss[i]-'0');for(i=x/4*2+2;i<=x-x/4-1;i++){b=b*10+(ss[i]-'0');}for(i=x/4+1;i<=x/4*2+1;i++){b1=b1*10+(ss[i]-'0');}for(i=1;i<=x/4;i++)a=a*10+(ss[i]-'0');}if(check4())return true;return false;}bool check2(){    if(a==b-1&&a==b1-1&&c-a==2)if(check3(len1))return true;return false;}bool check(int x,int dep){    int i,j;    a=b=c=b1=0;    if(x%4==0){    int j=0;for(i=x-x/4+1;i<=x;i++)c=c*10+(s[dep][i]-'0');for(i=x/2+1;i<=x-x/4;i++){b=b*10+(s[dep][i]-'0');ss[++j]=s[dep][i];}for(i=x/4+1;i<=x/2;i++){b1=b1*10+(s[dep][i]-'0');}for(i=1;i<=x/4;i++)a=a*10+(s[dep][i]-'0');len1=x/4;}else if(x%4==1){    for(i=x-x/4;i<=x;i++)c=c*10+(s[dep][i]-'0');for(i=x/4*2;i<=x-x/4-1;i++){b=b*10+(s[dep][i]-'0');ss[++j]=s[dep][i];}for(i=x/4+1;i<=x/4*2+1;i++){b1=b1*10+(s[dep][i]-'0');}for(i=1;i<=x/4;i++)a=a*10+(s[dep][i]-'0');len1=x/4;}else if(x%4==3){    for(i=x-x/4;i<=x;i++)c=c*10+(s[dep][i]-'0');for(i=x/4*2+2;i<=x-x/4-1;i++){b=b*10+(s[dep][i]-'0');ss[++j]=s[dep][i];}for(i=x/4+1;i<=x/4*2+1;i++){b1=b1*10+(s[dep][i]-'0');}for(i=1;i<=x/4;i++)a=a*10+(s[dep][i]-'0');len1=x/4+1;}if(check2())return true;return false;}int main(){        int i;    scanf("%d",&n);for(i=1;i<=n;i++){    scanf("%s",s[i]+1);len[i]=strlen(s[i]+1);if(!check(len[i],i))printf("%d\n",i);}return 0;}

0 0
原创粉丝点击