ZCMU-1428: Bit++ (水)

本文解析了一道关于Bit++编程语言的题目,涉及单一变量x和++或--操作。通过逐行解析指令,最终确定变量x在执行给定程序后的最终值。适合理解基础编程逻辑和指令执行过程。

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

题目

1428: Bit++

Time Limit: 1 Sec Memory Limit: 128 MB
Submit: 187 Solved: 144
[Submit][Status][Web Board]
Description

The classic programming language of Bitland is Bit++. This language is so peculiar and complicated.
The language is that peculiar as it has exactly one variable, called x. Also, there are two operations:
·Operation ++ increases the value of variable x by 1.
·Operation – decreases the value of variable x by 1.
A statement in language Bit++ is a sequence, consisting of exactly one operation and one variable x. The statement is written without spaces, that is, it can only contain characters “+”, “-”, “X”. Executing a statement means applying the operation it contains.
A programme in Bit++ is a sequence of statements, each of them needs to be executed. Executing a programme means executing all the statements it contains.
You’re given a programme in language Bit++. The initial value of x is 0. Execute the programme and find its final value (the value of the variable when this programme is executed).

Input

The first line contains a single integer n (1 ≤ n ≤ 150) — the number of statements in the programme.

Next n lines contain a statement each. Each statement contains exactly one operation (++ or --) and exactly one variable x (denoted as letter «X»). Thus, there are no empty statements. The operation and the variable can be written in any order.

Output

Print a single integer — the final value of x.

Sample Input

1
++X
2
X++
--X

Sample Output

1
0

想法

题目意思如果没读懂可能觉得有点难办,其实就是从0到n-1,然后根据指令判断+1还是-1


AC代码

#include<bits/stdc++.h>
using namespace std;
#define rep(i,a,b) for(int i=a;i<=b;++i)
#define pre(i,a,b) for(int i=a;i>=b;--i)
#define m(x) memset(x,0,sizeof x);
#define ll long long
const int maxn = 1e5+10;
string str1="X++",str2="++X",str3="X--",str4="--X";
int main(){
    
    int n,i,x=0;
        char a[150][3];
    while(~scanf ("%d",&n)){
        x = 0;
         for (i=0;i<n;i++)
         {
             scanf ("%s",a[i]);
             x=x+(a[i][1]=='+'?1:-1);//判断输入的是'+'or'-'
         }
         printf ("%d\n",x);
    }
    return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值