关于cin.getline在洛谷上的提交
  • 板块学术版
  • 楼主LYZHZ
  • 当前回复9
  • 已保存回复9
  • 发布时间2022/10/27 23:29
  • 上次更新2023/10/27 05:30:19
查看原帖
关于cin.getline在洛谷上的提交
716579
LYZHZ楼主2022/10/27 23:29

rt为了复习cspj在P1601 A+B Problem(高精)进行练习高精代码是这样的

#include<bits/stdc++.h>
using namespace std;
char aa[1001],bb[1001];
int a[1001],b[1001],c[1001];
int la,lb,lc;
int main()
{
	cin.getline(aa,1001);
	cin.getline(bb,1001);
//	cin>>aa>>bb;
	la=strlen(aa),lb=strlen(bb);
	for(int i=0;i<la;i++)	
		a[la-i]=aa[i]-'0';
	for(int i=0;i<lb;i++)
		b[lb-i]=bb[i]-'0';
	lc=max(lb,la);
	for(int i=1;i<=lc;i++)
	{
		c[i]+=a[i]+b[i];
		c[i+1]=c[i]/10;
		c[i]%=10;
	}
	if(c[lc+1]) lc++;
	while(c[lc]==0&&lc>=1) lc--;
	if(lc==0) cout<<0;
	else
		for(int i=lc;i>=1;i--)
			cout<<c[i];
	return 0;
}

但是错了,在洛谷的IDE上似乎无法运行,但是将8,9两行改为cin

#include<bits/stdc++.h>
using namespace std;
char aa[1001],bb[1001];
int a[1001],b[1001],c[1001];
int la,lb,lc;
int main()
{
//	cin.getline(aa,1001);
//	cin.getline(bb,1001);
	cin>>aa>>bb;
	la=strlen(aa),lb=strlen(bb);
	for(int i=0;i<la;i++)	
		a[la-i]=aa[i]-'0';
	for(int i=0;i<lb;i++)
		b[lb-i]=bb[i]-'0';
	lc=max(lb,la);
	for(int i=1;i<=lc;i++)
	{
		c[i]+=a[i]+b[i];
		c[i+1]=c[i]/10;
		c[i]%=10;
	}
	if(c[lc+1]) lc++;
	while(c[lc]==0&&lc>=1) lc--;
	if(lc==0) cout<<0;
	else
		for(int i=lc;i>=1;i--)
			cout<<c[i];
	return 0;
}

即可过,不知为何,请教大佬

2022/10/27 23:29
加载中...