共有回帖数 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 回复
Copyright © 2010~2015 直线网 版权所有,All Rights Reserved.沪ICP备10039589号
意见反馈 |
关于直线 |
版权声明 |
会员须知