华为7-15方程式求解

            题目:输入一个简单的加法方程式A+B=C,其中A,B,C中有一个为未知数X,其余两个为非负整数,要求输出X的值。输入为字符串,没有空格。

           我理解这道题是一个从字符串中提取数字,因为不知道A,B,C的位数,所以要提取出字符串中的数字,然后再进行计算。

           例如:12+x=15;

           输出3;

参考代码:


<span style="font-size:14px;"><strong>#include<iostream>
#include<stdio.h>
#include<string>
#include<ctype.h>
using namespace std;
int main()
{
	string str;
	cin>>str;
	int len=str.length();
	int numbers[2]={0};
	int i=1;
	int k=1;
	int flag=0;
	int index_equal=0;
	int index_x=0;
	for(int m=0;m<len;m++)
	{
		if(str[m]=='x')
			index_x=m;
		if(str[m]=='=')
			index_equal=m;
	}
	if(index_equal>index_x)
	{
		flag=1;
	}
    if(isdigit(str[0]))
	{
		numbers[0]=str[0]-'0';
		while(str[i])
		{
			if(!isdigit(str[i]))
				break;
			else
			{
				numbers[0]=numbers[0]*10+str[i]-'0';
			}
			i++;
			k++;
		}
		for(int j=k;j<len;j++)
		{
			if(isdigit(str[j]))
			{
				numbers[1]=numbers[1]*10+str[j]-'0';
			}
		}
		if(flag==1)
			cout<<numbers[1]-numbers[0];
		if(flag==0)
			cout<<numbers[0]+numbers[1];
	}
	else
	{
		flag=0;
        int index=3;
		int index_t=3;
		numbers[0]=str[2]-'0';
		while(str[index]&&index<len)
		{
			if(!isdigit(str[index]))
				break;
			else
			{
				numbers[0]=numbers[0]*10+str[index]-'0';
			}
			index++;
			index_t++;
		}
		for(int j=index_t;j<len;j++)
		{
			if(isdigit(str[j]))
			{
            	numbers[1]=numbers[1]*10+str[j]-'0';
			}
		}
		cout<<numbers[1]-numbers[0];
	}
	return 0;
}</strong></span>



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值