洛谷 P1957 口算练习题(字符串操作)

菜鸟生成记(56)

P1957 口算练习题

快乐的水题;暴力模拟

#include<iostream>
#include<stdio.h>//使用printf,scanf,一定要加头文件,不然判题不知道,printf,scanf来源;下线编译器可以通过,但是判题姬,就不一定了
#include<algorithm>
#include<sstream>//stringstream
using namespace std;
const int N=1e4+10;
int to_int(string s)//string转化int 
{
	int num;
	stringstream t;//中间变量 
	t<<s;//string值传给中间变量t 
	t>>num;//中间变量t的值传给int 
	return num;//返回整型 
}
string to_str(int num)//int转化string 
{
	string s;
	stringstream t;//中间变量 
	t<<num;//int值传给中间变量t 
	t>>s;//中间变量t的值传给string 
	return s;//返回字符串 
}
int main()
{
	/*
	a +
	b -
	c *
	*/
	int n;
	int a,b,ans;
	char pre;
	string s,str_sum;
	cin>>n;
	for(int i=0;i<n;i++)
	{
		cin>>s;//第一个输入按字符串输入 
		str_sum.clear();//清空
		if(s=="a"||s=="b"||s=="c")//判断s串;以a,b,c开头再输入两个int 
		{
			pre=s[0];//记录运算方式 
			cin>>a>>b;//输入两个int 
			switch(s[0])//运算方式 
			{
				case 'a':
					printf("%d+%d=%d",a,b,ans=a+b);
					break;
				case 'b':
					printf("%d-%d=%d",a,b,ans=a-b);
					break;
				case 'c':
					printf("%d*%d=%d",a,b,ans=a*b);
					break;
			}
			printf("\n");
			//将a,b,ans(a,b的和)转化为字符串,然后连接
			//string串相加就可实现 符串然连接 
			str_sum+=to_str(a)+to_str(b)+to_str(ans)+"+"+"=";
			//输出相加后的字符串长度 
			cout<<str_sum.length()<<endl;
		}
		else//判断s串;不是以a,b,c开头;将s串转化为int 
		{//再输入一个int
			a=to_int(s);
			cin>>b;	
			switch(pre)//pre上次的运算方式 
			{
				case 'a':
					printf("%d+%d=%d",a,b,ans=a+b);
					break;
				case 'b':
					printf("%d-%d=%d",a,b,ans=a-b);
					break;
				case 'c':
					printf("%d*%d=%d",a,b,ans=a*b);
					break;
			}
			printf("\n");
			//将a,b,ans(a,b的和)转化为字符串,然后连接
			//string串相加就可实现 符串然连接 
			str_sum+=to_str(a)+to_str(b)+to_str(ans)+"+"+"=";
			//输出相加后的字符串长度 
			cout<<str_sum.length()<<endl;
		}
	}
	return 0;
}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值