zoj 2492 A DP Problem
2011-09-06 13:39
218 查看
嘿嘿,做课程设计,我写的是计算器,本来还愁界面该怎么弄,后来看到这道计算方程式就来了灵感,干脆就加一个这功能吧,呵呵。。。。我写的比这个还复杂些,这道题计算出结果后向下取整就行了(用floor(double x)函数,原型 double floor(double x)返回的是取整后的浮点数)。。。。。
用到栈方面的知识,我在计算器里把功能扩展了,输入的数可以带小数点。。。。。
用到栈方面的知识,我在计算器里把功能扩展了,输入的数可以带小数点。。。。。
#include<stdio.h> #include<string.h> #include<stdlib.h> #include<math.h> int temp; int x1,x2; //x1是所有x(全放在'='号左边)的系数和,x2是所有常数(全放在'='号右边)的和 char s[1000],ch; int isNumber(char x)//判断是不是数 { if(x>='0'&&x<='9') return 1; else return 0; } int toNumber() //转化为数据 { int y=0; while(isNumber(ch)) { y+=ch-'0'; ch=s[temp++]; if(isNumber(ch)) y*=10; } return y; } void cacul() { int len=strlen(s),t,pp=1,m=1; ch=s[temp]; while(ch!='\0') { if(m==1) { ch=s[temp++]; if(isNumber(ch)||ch=='x') //处理第一个字符为'-'的情况 { ch='+'; temp--; } m=2; } switch(ch) { case '+':{ ch=s[temp++]; if(ch=='x') //x的系数为1 { if(pp==1) x1+=1; else x1-=1; ch=s[temp++]; } else { if(isNumber(ch)) { t=toNumber(); if(ch=='x') { if(pp==1) x1+=t; else x1-=t; ch=s[temp++]; } else { if(pp==1) x2-=t; else x2+=t; } } } break; } case '-':{ ch=s[temp++]; if(ch=='x') { if(pp==1) x1-=1; else x1+=1; ch=s[temp++]; } else { if(isNumber(ch)) { t=toNumber(); if(ch=='x') { if(pp==1) x1-=t; else x1+=t; ch=s[temp++]; } else { if(pp==1) x2+=t; else x2-=t; } } } break; } case '=':{ ch=s[temp++]; if(isNumber(ch)||ch=='x') { ch='+'; temp--; } pp=2; break; } } } } int main() { int ncase; double m; scanf("%d",&ncase); while(ncase--) { scanf("%s",s); temp=0; x1=0; x2=0; cacul(); if(x1==0) { if(x2==0) printf("IDENTITY\n"); else printf("IMPOSSIBLE\n"); } else { m=x2*1.0/x1; printf("%d\n",(int)floor(m)); } } return 0; }
相关文章推荐
- ZOJ Problem Set - 3822Domination(DP)
- ZOJ Problem Set - 1074 To the Max (最大和子矩阵 dp)
- ZOJ-3777 Problem Arrangement(dp状态压缩)
- CQBZOJ - 2916 学生宿舍 动态规划(DP) 重庆一中高2018级竞赛班第十次测试 2016.9.16 Problem 1
- zoj 3777 Problem Arrangement(状压dp)
- ★ZOJ 3777 Problem Arrangement 详解(壮压DP)
- Zoj 3541 The Last Puzzle (dp) - 2011 ACM-ICPC Dalian Regional Contest Problem C
- ZOJ 3777-Problem Arrangement(状压DP)
- ZOJ 3777 Problem Arrangement(状压DP)
- ZOJ Problem Set - 3469(区间dp)
- ZOJ 3777 11th省赛 B Problem Arrangement【状态压缩DP】
- ZOJ Problem Set - 3822Domination(DP)
- Zju2492 A Dp Problem
- ZOJ-3777-Problem Arrangement(状压DP)
- ZOJ Problem Set - 2563 Long Dominoes 【如压力dp】
- ZOJ Problem Set - 3543 Number String DP
- ZOJ 3777 Problem Arrangement (状压DP)
- zoj-3777-Problem Arrangement(状态压缩DP)
- ZOJ 3777 - Problem Arrangement(状压DP)
- ZOJ - 3777 —— Problem Arrangement —— 状态压缩DP