签到

05月06日
尚未签到

共有回帖数 0

    李小主任

    等级:
    关于移动火柴棒让等式成立的题目 达人请进    
     . 这是一个很古老的游戏。用木棒在桌上拼出一个不成立的等式,移动且只移动一根木棒使得等式成立。现在轮到你了。从键盘读入一个式子(该式子肯定是一个不成立的等式)。    
    判断,是否可以移动一根木棒可以使等式成立,则输出新的等式,否则输出No。    

    a.式子中的数只能是正数,运算符号只会出现一个加号或减号,并且有且仅有一个等号,不会出现括号、乘号或除号,也不会有++,--,+-或-+出现。    
    b.式子中只能是整数,并且小于32767    
    c.可以移动符号,移动前后,木棒构成的数字必须严格与计算机器中显示的效果一致。    
    d.从键盘读入的式子中的数不会以0开头,但允许修改后等式中的数以数字为开头。    
    #include stdio.h  
    main()  
    {  
    char s[40];  
    int swanp1();  
    get_s_and_jia_k(s);  

    swanp_one(s);  
    swanp_two(s);  
    swanp_three(s);  
    swanp_four(s);  
    printf("over");  

    }  

    ok(char s[])/*pan duan */  
    {  
    char *p=s;  
    char s1[15];  
    char s2[15];  
    char s3[15];  
    char c;  
    int i,k,z;  
    char b[40];  
    fuzhi(b,s);  
    i=0;  
    while(*(p+i)!='')  
    {if(*(p+i)=='k') swanp2(s,i);  
    else i++;  
    }/*sha k*/  
    i=0;  
    while(*(p+i)!='+'&&*(p+i)!='-'){s1=*(p+i);i++;}s1='';/*get s1*/  
    c=*(p+i);/*get c*/  
    i++;k=0;  
    while(*(p+i)!='='){s2[k]=*(p+i);i++;k++;}s2[k]='';/*get s2*/  
    i++;k=0;  
    while(*(p+i)!=''){s3[k]=*(p+i);i++;k++;}s3[k]='';/*get s3*/  
    i=swanp1(s1);  
    k=swanp1(s2);  
    z=swanp1(s3);/*get a,b,c,fh*/  
    /*printf("%d,%d,%dn",i,k,z);*/  
    if(c=='+'&&i+k==z||c=='-'&&i-k==z)  
    {printf("yes--");  
    printf("%d%c%d=%dn",i,c,k,z);}  
    fuzhi(s,b);  
    }  

    int swanp1(char s[])/*put s to number*/  
    {  
    char *p=s;  
    int x=0,y=1;  
    while((*p)!='') p++;  
    p--;  
    while(1){  
    x+=(*p-48)*y;  
    if(s==p) break;  
    p--;y*=10;  
    }  
    return x;  
    }  
    swanp2(char s[],int i)/*shan chu*/  
    {  
    char *p=s;  
    while(1){  
    *(p+i)=*(p+i+1);if(*(p+i)=='') break;  
    p++;  
    }  
    }  
    get_s_and_jia_k(char s[])  
    {  
    char c;  
    int n;  
    for(n=0;(c=getchar())!='n';n+=2)  
    {s[n]='k';s[n+1]=c;}  
    s[n]='k';s[n+1]='';  
    }  
    fuzhi(char s[],char shuru[])  
    {  
    int n=0;  
    while((*(s+n)=*(shuru+n))!='')n++;  
    *(s+n)=*(shuru+n);  
    }  
    /*---------------tao lun-------------------*/  
    swanp_one(char s[])  
    {  
    char *p=s;  
    char b[40];  
    fuzhi(b,s);  
    while((*p)!=''){  
    switch(*p-'0'){  
    case 0:*p='6';ok(s);*p='9';ok(s);break;  
    case 2:*p='3';ok(s);break;  
    case 3:*p='2';ok(s);*p='5';ok(s);break;  
    case 5:*p='3';ok(s);break;  
    case 6:*p='0';ok(s);break;  
    case 9:*p='0';ok(s);break;  
    default: break;}  
    p++;}  
    fuzhi(s,b);  
    }  

    swanp_two(char s[])  
    {  
    char *p=s;  
    int n=0;  
    char b[40];  
    fuzhi(b,s);  
    while((*p)!=''){  
    switch(*p-'0'){  
    case 0:*p='8';  
    while(*(s+n)!=''){  
    switch(*(s+n)-'0'){  
    case 7:*(s+n)='1';ok(s); *(s+n)='7';break;  
    case 9:*(s+n)='3';ok(s);*(s+n)='5';ok(s); *(s+n)='9';break;  
    case 6:*(s+n)='5';ok(s); *(s+n)='6';break;  
    case 8:*(s+n)='0';ok(s);*(s+n)='6';ok(s);*(s+n)='9';ok(s); *(s+n)='8';break;  
    case ('+'-'0'):*(s+n)='-';ok(s); *(s+n)='+';break;


    default: break;}  
    n++;}  
    *p='0';  
    n=0;  
    break;  
    case 1:*p='7';  
    while(*(s+n)!=''){  
    switch(*(s+n)-'0'){  
    case 7:*(s+n)='1';ok(s); *(s+n)='7';break;  
    case 9:*(s+n)='3';ok(s);*(s+n)='5';ok(s); *(s+n)='9';break;  
    case 6:*(s+n)='5';ok(s); *(s+n)='6';break;  
    case 8:*(s+n)='0';ok(s);*(s+n)='6';ok(s);*(s+n)='9';ok(s); *(s+n)='8';break;  
    case ('+'-'0'):*(s+n)='-';ok(s); *(s+n)='+';break;  
    default: break;}  
    n++;}  
    *p='1';  
    n=0;  
    break;  
    case 3:*p='9';  
    while(*(s+n)!=''){  
    switch(*(s+n)-'0'){  
    case 7:*(s+n)='1';ok(s); *(s+n)='7';break;  
    case 9:*(s+n)='3';ok(s);*(s+n)='5';ok(s); *(s+n)='9';break;  
    case 6:*(s+n)='5';ok(s); *(s+n)='6';break;  
    case 8:*(s+n)='0';ok(s);*(s+n)='6';ok(s);*(s+n)='9';ok(s); *(s+n)='8';break;  
    case ('+'-'0'):*(s+n)='-';ok(s); *(s+n)='+';break;  
    default: break;}  
    n++;}  
    *p='3';  
    n=0;  
    break;  
    case 5:*p='6';  
    while(*(s+n)!=''){  
    switch(*(s+n)-'0'){  
    case 7:*(s+n)='1';ok(s); *(s+n)='7';break;  
    case 9:*(s+n)='3';ok(s);*(s+n)='5';ok(s); *(s+n)='9';break;  
    case 6:*(s+n)='5';ok(s); *(s+n)='6';break;  
    case 8:*(s+n)='0';ok(s);*(s+n)='6';ok(s);*(s+n)='9';ok(s); *(s+n)='8';break;  
    case ('+'-'0'):*(s+n)='-';ok(s); *(s+n)='+';break;  
    default: break;}  
    n++;}  
    *p='5';  
    n=0;  
     
    *p='9';  
    while(*(s+n)!=''){  
    switch(*(s+n)-'0'){  
    case 7:*(s+n)='1';ok(s); *(s+n)='7';break;  
    case 9:*(s+n)='3';ok(s);*(s+n)='5';ok(s); *(s+n)='9';break;  
    case 6:*(s+n)='5';ok(s); *(s+n)='6';break;  
    case 8:*(s+n)='0';ok(s);*(s+n)='6';ok(s);*(s+n)='9';ok(s); *(s+n)='8';break;  
    case ('+'-'0'):*(s+n)='-';ok(s); *(s+n)='+';break;  
    default: break;}  
    n++;}  
    *p='5';  
    n=0;  
    break;  
    case 6:*p='8';  
    while(*(s+n)!=''){  
    switch(*(s+n)-'0'){  
    case 7:*(s+n)='1';ok(s); *(s+n)='7';break;  
    case 9:*(s+n)='3';ok(s);*(s+n)='5';ok(s); *(s+n)='9';break;  
    case 6:*(s+n)='5';ok(s); *(s+n)='6';break;  
    case 8:*(s+n)='0';ok(s);*(s+n)='6';ok(s);*(s+n)='9';ok(s); *(s+n)='8';break;  
    case ('+'-'0'):*(s+n)='-';ok(s); *(s+n)='+';break;  
    default: break;}  
    n++;}  
    *p='6';  
    n=0;  

    *p='5';  
    while(*(s+n)!=''){  
    switch(*(s+n)-'0'){  
    case 1:*(s+n)='7';ok(s); *(s+n)='1';break;  
    case 3:*(s+n)='9';ok(s); *(s+n)='3';break;  
    case 5:*(s+n)='6';ok(s);*(s+n)='9';ok(s); *(s+n)='5';break;  
    case 6:*(s+n)='8';ok(s); *(s+n)='6';break;  
    case 9:*(s+n)='8';ok(s); *(s+n)='9';break;  
    case 0:*(s+n)='8';ok(s); *(s+n)='0';break;  
    case ('-'-'0'):*(s+n)='+';ok(s); *(s+n)='-';break;  
    default: break;}  
    n++;}  
    *p='6';  
    n=0;  
    break;  
    case 7:*p='1';  
    while(*(s+n)!=''){  
    switch(*(s+n)-'0'){  
    case 1:*(s+n)='7';ok(s); *(s+n)='1';break;

    case 3:*(s+n)='9';ok(s); *(s+n)='3';break;  
    case 5:*(s+n)='6';ok(s);*(s+n)='9';ok(s); *(s+n)='5';break;  
    case 6:*(s+n)='8';ok(s); *(s+n)='6';break;  
    case 9:*(s+n)='8';ok(s); *(s+n)='9';break;  
    case 0:*(s+n)='8';ok(s); *(s+n)='0';break;  
    case ('-'-'0'):*(s+n)='+';ok(s); *(s+n)='-';break;  
    default: break;}  
    n++;}  
    *p='7';  
    n=0;  
    break;  
    case 8:*p='0';  
    while(*(s+n)!=''){  
    switch(*(s+n)-'0'){  
    case 1:*(s+n)='7';ok(s); *(s+n)='1';break;  
    case 3:*(s+n)='9';ok(s); *(s+n)='3';break;  
    case 5:*(s+n)='6';ok(s);*(s+n)='9';ok(s); *(s+n)='5';break;  
    case 6:*(s+n)='8';ok(s); *(s+n)='6';break;  
    case 9:*(s+n)='8';ok(s); *(s+n)='9';break;  
    case 0:*(s+n)='8';ok(s); *(s+n)='0';break;  
    case ('-'-'0'):*(s+n)='+';ok(s); *(s+n)='-';break;  
    default: break;}  
    n++;}  
    *p='8';  
    n=0;  

    *p='6';  
    while(*(s+n)!=''){  
    switch(*(s+n)-'0'){  
    case 1:*(s+n)='7';ok(s); *(s+n)='1';break;  
    case 3:*(s+n)='9';ok(s); *(s+n)='3';break;  
    case 5:*(s+n)='6';ok(s);*(s+n)='9';ok(s); *(s+n)='5';break;  
    case 6:*(s+n)='8';ok(s); *(s+n)='6';break;  
    case 9:*(s+n)='8';ok(s); *(s+n)='9';break;  
    case 0:*(s+n)='8';ok(s); *(s+n)='0';break;  
    case ('-'-'0'):*(s+n)='+';ok(s); *(s+n)='-';break;  
    default: break;}  
    n++;}  
    *p='8';  
    n=0;  

    *p='9';  
    while(*(s+n)!=''){  
    switch(*(s+n)-'0'){  
    case 1:*(s+n)='7';ok(s); *(s+n)='1';break;  
    case 3:*(s+n)='9';ok(s); *(s+n)='3';break;  
    case 5:*(s+n)='6';ok(s);*(s+n)='9';ok(s); *(s+n)='5';break;  
    case 6:*(s+n)='8';ok(s); *(s+n)='6';break;  
    case 9:*(s+n)='8';ok(s); *(s+n)='9';break;  
    case 0:*(s+n)='8';ok(s); *(s+n)='0';break;  
    case ('-'-'0'):*(s+n)='+';ok(s); *(s+n)='-';break;  
    default: break;}  
    n++;}  
    *p='8';  
    n=0;  
    break;  
    case 9:*p='8';  
    while(*(s+n)!=''){  
    switch(*(s+n)-'0'){  
    case 7:*(s+n)='1';ok(s); *(s+n)='7';break;  
    case 9:*(s+n)='3';ok(s);*(s+n)='5';ok(s); *(s+n)='9';break;  
    case 6:*(s+n)='5';ok(s); *(s+n)='6';break;  
    case 8:*(s+n)='0';ok(s);*(s+n)='6';ok(s);*(s+n)='9';ok(s); *(s+n)='8';break;  
    case ('+'-'0'):*(s+n)='-';ok(s); *(s+n)='+';break;  
    default: break;}  
    n++;}  
    *p='9';  
    n=0;  
     
    *p='3';  
    while(*(s+n)!=''){  
    switch(*(s+n)-'0'){  
    case 1:*(s+n)='7';ok(s); *(s+n)='1';break;  
    case 3:*(s+n)='9';ok(s); *(s+n)='3';break;  
    case 5:*(s+n)='6';ok(s);*(s+n)='9';ok(s); *(s+n)='5';break;  
    case 6:*(s+n)='8';ok(s); *(s+n)='6';break;  
    case 9:*(s+n)='8';ok(s); *(s+n)='9';break;  
    case 0:*(s+n)='8';ok(s); *(s+n)='0';break;  
    case ('-'-'0'):*(s+n)='+';ok(s); *(s+n)='-';break;  
    default: break;}  
    n++;}  
    *p='9';  
    n=0;  

    *p='5';  
    while(*(s+n)!=''){

    switch(*(s+n)-'0'){  
    case 1:*(s+n)='7';ok(s); *(s+n)='1';break;  
    case 3:*(s+n)='9';ok(s); *(s+n)='3';break;  
    case 5:*(s+n)='6';ok(s);*(s+n)='9';ok(s); *(s+n)='5';break;  
    case 6:*(s+n)='8';ok(s); *(s+n)='6';break;  
    case 9:*(s+n)='8';ok(s); *(s+n)='9';break;  
    case 0:*(s+n)='8';ok(s); *(s+n)='0';break;  
    case ('-'-'0'):*(s+n)='+';ok(s); *(s+n)='-';break;  
    default: break;}  
    n++;}  
    *p='9';  
    n=0;  
    break;  
    default: break;}  
    p++;}  
    fuzhi(s,b);  
    }  

    swanp_three(char s[])  
    {  
    char *p=s;  
    int n=0;  
    char b[40];  
    fuzhi(b,s);  
    while((*p)!=''){  
    if((*p)!='1'){p++;continue;}  
    else{  
    if((*(p+2))=='+'||(*(p+2))=='-' ){p++;continue;}  
    if(((*(p-2))=='+'||(*(p-2))=='-')&&(*(p+2))=='='){p++;continue;}  
    if((*(p-2))=='='&&(*(p+2))==''){p++;continue;}  
    }  
    *p='k';  
    while(*(s+n)!=''){  
    switch(*(s+n)-'0'){  
    case 1:*(s+n)='7';ok(s); *(s+n)='1';break;  
    case 3:*(s+n)='9';ok(s); *(s+n)='3';break;  
    case 5:*(s+n)='6';ok(s);*(s+n)='9';ok(s); *(s+n)='5';break;  
    case 6:*(s+n)='8';ok(s); *(s+n)='6';break;  
    case 9:*(s+n)='8';ok(s); *(s+n)='9';break;  
    case 0:*(s+n)='8';ok(s); *(s+n)='0';break;  
    case ('-'-'0'):*(s+n)='+';ok(s); *(s+n)='-';break;  
    case 'k'-'0':*(s+n)='1';ok(s); *(s+n)='k';break;  
    default: break;}  
    n++;}  
    *p='1';  
    n=0;  
    p++;}  
    fuzhi(s,b);  
    }  

    swanp_four(char s[])  
    {  
    char *p=s;  
    int n=0;  
    char b[40];  
    fuzhi(b,s);  
    while((*p)!=''){  
    if(*p=='k'){*p='1';  
    while(*(s+n)!=''){  
    switch(*(s+n)-'0'){  
    case 7:*(s+n)='1';ok(s); *(s+n)='7';break;  
    case 9:*(s+n)='3';ok(s);*(s+n)='5';ok(s); *(s+n)='9';break;  
    case 6:*(s+n)='5';ok(s); *(s+n)='6';break;  
    case 8:*(s+n)='0';ok(s);*(s+n)='6';ok(s);*(s+n)='9';ok(s); *(s+n)='8';break;  
    case ('+'-'0'):*(s+n)='-';ok(s); *(s+n)='+';break;  
    case 1:  
    if(((*(s+n+2))=='+'||(*(s+n+2))=='-' )&&  
    (((*(s+n-2))=='+'||(*(s+n-2))=='-')&&(*(s+n+2))=='=')&&  
    ((*(s+n-2))=='='&&(*(s+n+2))=='')) break;  
    else  
    {*(s+n)='k';ok(s); *(s+n)='1';break;}  
    default: break;}  
    n++;}  
    *p='k';  
    n=0;}  
    p++;}  
    fuzhi(s,b);  
    }

    楼主 2016-03-16 12:35 回复

共有回帖数 0
  • 回 帖
  • 表情 图片 视频
  • 发表

登录直线网账号

Copyright © 2010~2015 直线网 版权所有,All Rights Reserved.沪ICP备10039589号 意见反馈 | 关于直线 | 版权声明 | 会员须知