NewCoder刷题总结

关于输入输出

  1. 已知数组个数,输入数组
1
2
3
4
5
6
int n;
cin >> n;
vector<int> nums(n);
for(int i = 0; i<n; i++){
cin >> nums[i];
}
  1. 输入两行数字,但是不知道个数
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
vector<int> nums1;
vector<int> nums2;

int a;
bool flag = false;
while(cin >> a){
if(!flag){
nums1.push_back(a);
} else{
nums2.push_back(a);
}
char ch = getchar(); //查看后边的字符输入是不是换行,如果是的话就换到下一行
if(ch == '\n'){
flag = true;
}
}

当然还有第二种方法就是:

1
2
3
4
5
6
7
8
9
#include <iterator>
#include <sstream>
#include <vector>

string line;
getline(cin, line);
istringstream ss(line);
istream_iterator<int> begin(ss), end;
vector<int> nums(begin, end);

python中能够直接使用的库,为了过题,不一定要使用c++

遇到计算字符串表达式的题目。
python3提供了eval()函数来计算一个字符串表达式,并返回表达式的值。

输出可以使用print

python输入可以为input()

例如:实现一个整数计算器的话,可以使用 print( eval(input()))

或者实现多行输入的话:

1
2
3
4
5
6
7
8
9
def main():
while 1:
i = input()
if i == "END":
break
exec("print("+i+")")

if __name__=="__main__":
main()