2011年上海交通大学计算机研究生机试真题
生活随笔
收集整理的這篇文章主要介紹了
2011年上海交通大学计算机研究生机试真题
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
http://ac.jobdu.com/problem.php?pid=1103?二次方程計(jì)算器
#include<iostream> #include<cstdio> #include<cmath> using namespace std;int main(void) {int i,index,a,b,c,m,sign,ra,rb,rc;char str[200];double rt,first,second;while(scanf("%s",str)!=EOF){for(i=0;str[i]!='\0';i++){if(str[i]=='='){index=i;break;}}a=b=c=0;m=0,sign=1;for(i=0;i<index;) //方程等式的左半部分{if(str[i]>='0' && str[i]<='9'){m=m*10+str[i]-'0';i++;}else if(str[i]!='x'){if(str[i]=='+'){c+=m*sign;sign=1;}else if(str[i]=='-'){c+=m*sign;sign=-1;}i++;m=0;}else if(str[i]=='x' && str[i+1]=='^'){if(i==0 || str[i-1]=='+' || str[i-1]=='-')m=1;a+=m*sign;m=0;i=i+3;}else if(str[i]=='x' && str[i+1]!='^'){if(i==0 || str[i-1]=='+' || str[i-1]=='-')m=1;b+=m*sign;m=0;i++;}}//forc+=m*sign;ra=rb=rc=0;m=0,sign=1;for(i=index+1;str[i]!='\0';) //方程等式的右半部分{if(str[i]>='0' && str[i]<='9'){m=m*10+str[i]-'0';i++;}else if(str[i]!='x'){if(str[i]=='+'){rc+=m*sign;sign=1;}else if(str[i]=='-'){rc+=m*sign;sign=-1;}i++;m=0;}else if(str[i]=='x' && str[i+1]=='^'){if(i==index+1 || str[i-1]=='+' || str[i-1]=='-')m=1;ra+=m*sign;m=0;i=i+3;}else if(str[i]=='x' && str[i+1]!='^'){if(i==index+1 || str[i-1]=='+' || str[i-1]=='-')m=1;rb+=m*sign;m=0;i++;}}//forrc+=m*sign;a-=ra;b-=rb;c-=rc;if(b*b-4*a*c>=0){rt=sqrt(1.0*b*b-4*a*c);if(a>0){first=(-b-rt)/(2*a);second=(-b+rt)/(2*a);}else{first=(b+rt)/(-2*a);second=(b-rt)/(-2*a);}if(first<second)printf("%.2lf %.2lf\n",first,second);elseprintf("%.2lf %.2lf\n",second,first);}elseprintf("No Solution\n");}return 0; }// 3x+4=x^2+x // -x^2=0
總結(jié)
以上是生活随笔為你收集整理的2011年上海交通大学计算机研究生机试真题的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 2011年北京大学计算机研究生机试真题(
- 下一篇: KMP算法详解及各种应用