中级守护
5566 数学题目(math)
经验值:800 时间限制:1000毫秒
经开区2020年信息学竞赛试题
不许抄袭,一旦发现,直接清空经验!
题目描述 Description
给定n个正整数和n-1个运算符号,请输出计算过程和结果。
输入描述 Input Description
共三行。第一行一个正整数n;第二行n个正整数,中间用空格隔开;第三行n-1个符号,中间用空格隔开。
输出描述 Output Description
n行,包括计算过程和结果。
样例输入 Sample Input
4 5 2 3 4 - + +
样例输出 Sample Output
5-2+3+4 =3+3+4 =6+4 =10
数据范围及提示 Data Size & Hint
符号只有加号或减号。中间的运算过程保证不会产生负数。所有的结果均在int范围以内。
2<=n<=100。
没思路啊,请问哪位大佬能指导一下?谢谢!
高级天翼
int a[10002],n;
char b[10002];
cin>>n;
for(int i=1;i<=n;i++){
cin>>a[i];
}
for(int i=1;i<n;i++){
cin>>b[i];
} b[n]='\n';
for(int i=1;i<=n;i++){
cout<<a[i]<<b[i];
}
for(int i=1;i<=n-1;i++){
cout<<"=";
if(b[i]=='+'){
a[i+1]=a[i]+a[i+1];
}
if(b[i]=='-'){
a[i+1]=a[i]-a[i+1];
}
for(int j=i+1;j<=n;j++){
cout<<a[j]<<b[j];
}
}
望采纳
缔造者
for(int i=1;i<=n;i++){ cin>>a[i]; } for(int i=1;i<n;i++){ cin>>b[i]; } for(int i=1;i<n;i++){ cout<<a[i]<<b[i]; } cout<<a[n]; b[n]=' '; cout<<endl; for(int i=1;i<=n;i++){ if(i!=n) cout<<"="; if(b[1]=='+'){ a[1]=a[1]+a[2]; } else a[1]=a[1]-a[2]; for(int j=2;j<=n;j++){ a[j]=a[j+1]; } for(int k=1;k<n;k++){ b[k]=b[k+1]; } for(int l=1;l<=n-i;l++){ cout<<a[l]<<b[l]; } cout<<endl; }
核心