文章
2
粉丝
0
获赞
12
访问
696
为什么我这个只能过80%?
思路:分别计算等式左边的x系数l_x和常数l_n,右边x系数r_x和常数r_n。然后进行判断是否有解,若有解,res=(r_n-l_n)/(l_x-r_x)。
#include <iostream>
#include <cstring>
#include <algorithm>
using namespace std;
const int N=55;
typedef long long LL;
string s;
LL l_x,r_x,l_n,r_n;
int main()
{
cin>>s;
int n=s.size();
int i;
for(i=0;i<n;i++)
{
if(s[i]!='=')
{
if(isdigit(s[i]))
{
char c;
if(i) c=s[i-1];
else c='+';
int j=i;
LL val=0;
while(j<n && isdigit(s[j])) val=val*10+s[j++]-'0';
if(c=='+' && s[j]=='x') l_x+=val;
else if(c=='-' && s[j]=='x') l_x-=val;
else if(c=='+' && s[j]!='x') l_n+=val;
else if(c=='-' && s[j]!='x') l_n-=val;
i=j-1;
}
else if(s[i]=='x' && (i==0 || s[i-1]=='+')) l_x+=1;
else if(s[i]=='x' && s[i-1]=='-') l_x-=1;
}
else break;
}
for(++i;i<n;i++)
{
if(isdigit(s[i]))
{
char c=...
登录后发布评论
no solution多了一个s