【字符串】【模拟】小X的加法难题

本文介绍了如何解决小X遇到的加法难题,通过直接模拟字符串的加法过程,关键在于正确处理输入字符串。建议使用字符读入或getline函数进行输入。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

L i n k Link Link

SSL 2474

D e s c r i p t i o n Description Description 在这里插入图片描述

T r a i n Train Train o f of of T h o u g h t Thought Thought

直接模拟就OK了,注意,读入时要么用字符,要么用 g e t l i n e ( c i n , s ) getline(cin,s) getline(cin,s)来读入字符串

C o d e Code Code

#include<cstdio>
#include<string>
#include<cstring>
#include<iostream>
using namespace std;
int ans,tt,t,a[1001],c[1001];
string s; bool b;
int main()
{
	int sum=0,sum2=0;
	getline(cin,s);//遇到空格不停
	int len=s.length();
	for (int j=0; j<len; ++j)
	{
		if (s[j]=='+') {b=true; continue;}
		if (s[j]>='0' && s[j]<='9' && !b) {
			a[++tt]=s[j]-48;
			if (tt>8 && sum!=0) {printf("Large"); return 0;} //超过8位的相加肯定会超
			 else sum=sum*10+a[tt];
		} 
		 else if (s[j]>='0' && s[j]<='9') {
		 	c[++t]=s[j]-48;
			if (t>8 && sum2!=0) {printf("Large"); return 0;}//同上
			 else sum2=sum2*10+c[t];
		}
	}
	ans=sum+sum2;
	if (ans<=1e8) printf("%d",ans);
	 else printf("Large");
	return 0; 
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值