牛客 | OJ在线编程常见输入输出练习

1.只有输出

言归正传,本张试卷总共包括18个题目,包括了笔试情况下的各种输入输出。

第一题不需要输入,仅需输出字符串 Hello Nowcoder! 即可通过。

cpp 复制代码
#include <iostream>
using namespace std;
int main(){
    string s = "Hello Nowcoder!";
    cout << s << endl;
    return 0;
}

2.单组_A+B

cpp 复制代码
#include <iostream>
using namespace std;
int main() {
    long long a, b;
    while(cin >> a >> b){
        cout << a + b << endl;
    }
    return 0;
}

3.多组_A+B_EOF形式

cpp 复制代码
#include <iostream>
using namespace std;
int main(){
    long long a, b;
    while(cin >> a >> b){
        cout << a + b << endl;
    }
    return 0;
}

4.多组_A+B_T组形式

cpp 复制代码
#include <iostream>
using namespace std;
int main(){
    int t;
    long long a, b;
    cin >> t;
    for(int i = 0; i < t; i++){
        cin >> a >> b;
        cout << a + b << endl;
    }
    return 0;
}

5.多组_A+B_零尾模式

cpp 复制代码
#include <iostream>
using namespace std;
int main(){
    long long a, b;
    while(cin >> a >> b){
        if(a !=0 && b != 0){
            cout << a + b << endl;
        }
        else {
            break;
        }
    }
    return 0;
}

6.单组_一维数组

cpp 复制代码
#include <iostream>
#include <vector>
using namespace std;
int main(){
    int n;
    cin >> n;
    long long res;
    vector<long long> nums(n);
    for(int i = 0; i < n; i++){
        cin >> nums[i];
        res += nums[i];
    }
    cout << res << endl;
    return 0;
}

7.多组_一维数组_T组形式

cpp 复制代码
#include <iostream>
using namespace std;
int main(){
    int t;
    cin >> t;
    while(t--){
        int n;
        cin >> n;
        long long sum = 0;
        for(int i = 0; i < n; i++){
            long long a;
            cin >> a;
            sum += a;
        }
        cout << sum << endl;   
    }
    return 0;
}

8.单组_二维数组

cpp 复制代码
#include <iostream>
using namespace std;
int main(){
    int n, m;
    cin >> n >> m;
    long long sum = 0, a;
    for(int i = 0; i < n; i++){
        for(int j = 0; j < m; j++){
            cin >> a;
            sum += a;
        }
    }
    cout << sum << endl;
    return 0;
}

9.多组_二维数组_T组形式

cpp 复制代码
#include <iostream>
using namespace std;
int main() {
    int t;
    cin >> t;
    while(t--){
        int n, m;
        cin >> n >> m;
        long long sum = 0, a;
        for(int i = 0; i < n; i++){
            for(int j = 0; j < m; j++){
                cin >> a;
                sum += a;
            }
        }
        cout << sum << endl;
    }
    return 0;
}

10.单组_字符串

cpp 复制代码
#include <iostream>
#include <string>
using namespace std;
int main(){
    int n;
    cin >> n;
    string s;
    cin >> s;
    for(int i = 0; i < n/2; i++){
        swap(s[i], s[n - i - 1]);
    }
    cout << s << endl;
    return 0;
}

11.多组_字符串_T组形式

cpp 复制代码
#include <iostream>
#include <string>
using namespace std;
int main(){
    int t;
    cin >> t;
    while(t--){
        int n;
        cin >> n;
        string s;
        cin >> s;
        for(int i = 0; i < n/2; i++){
            swap(s[i], s[n - i - 1]);
        }
        cout << s << endl;
    }
    return 0;
}

12.单组_二维字符数组

cpp 复制代码
#include <iostream>
#include <string>
#include <vector>
using namespace std;
int main(){
    int n, m;
    cin >> n >> m;
    vector<string> arr(n);
    for(int i = 0; i < n; i++){
        cin >> arr[i];
    }
    for(int i = 0; i < n/2; i++){
        swap(arr[i], arr[n - i - 1]);
    }
    for(int i = 0; i < n; i++){
        string row = arr[i];
        for(int j = 0; j < m/2; j++){
            swap(row[j], row[m - j -1]);
        }
        arr[i] = row;
    }
    for(const string& row:arr){
        cout << row << endl;
    }
    return 0;
}

13.多组_带空格的字符串_T组形式

cpp 复制代码
#include <iostream>
#include <string>
using namespace std;
int main(){
    int t;
    cin >> t;
    while(t--){
        int n;
        cin >> n;
        // 忽略空白字符,读取包含空格的整行字符
        cin.ignore();
        string s;
        getline(cin, s);
        string newS;
        for(char c : s){
            if(c != ' ') newS += c;
        }
        for(int i = 0; i < newS.size()/2; i++){
            swap(newS[i], newS[newS.size() - i - 1]);
        }
        cout << newS << endl;
    }
    return 0;
}

14.单组_保留小数位数

cpp 复制代码
#include <iostream>
#include <iomanip> // 填充格式
using namespace std;
int main(){
    double a;
    cin >> a;
    cout << fixed << setprecision(3) << a << endl;
    return 0;
}

15.单组_补充前导零

cpp 复制代码
#include <iostream>
#include <iomanip>
using namespace std;
int main(){
    long long a;
    cin >> a;
    cout << setw(9) << setfill('0') << a << endl;
    return 0;
}

16.单组_spj判断YES与NO

cpp 复制代码
#include <iostream>
using namespace std;

int main() {
    long long a;
    while(cin >> a){
        if(a % 2 == 1) cout << "YES" << endl;
        else cout << "NO" << endl;
    }
    return 0;
}
// 64 位输出请用 printf("%lld")

17.单组_spj判断浮点误差

cpp 复制代码
#include <iostream>
#include <iomanip>
using namespace std;
const double pi = 3.14159265358979323846;
int main() {
    double r;
    cin >> r;
    double area = pi * r * r;
    cout << fixed << setprecision(6) << area << endl;
    return 0;
}
// 64 位输出请用 printf("%lld")

18.单组_spj判断数组之和

想复杂了 这道题就是一个输出就行了 没那么多复杂的思路

cpp 复制代码
#include <iostream>
#include <vector>
using namepsace std;
int main() {
	long m, n;
	cin >> n >> m;
	vector<int> res(n);
	for(long i = 0; i < n - 1; i++){
		res[i] = 1;
	}
	res[n] = m - (n - 1);
	for(auto num : res){
		cout << num << " ";
	}
	cout << end;
	return 0;
}

几个关键点:

  1. 循环输入
cpp 复制代码
while(cin >> a >> b){
}
  1. 固定输出
    (1)小数
    头文件 #include <iomanip>
    设置浮点数输出的精度 setprecision(),当与fixed结合使用时,n表示小数点后的位数。
    例如 cout << fixed << setprecision(3) << a << endl;
    (2)填充宽度
    设置输出字段宽度为n个字符:setw(n),
    设置填充字符为0:setfill('0'),当输出内容长度小于setw设置的宽度时,用0填充。
    例如 cout << setw(9) << setfill('0') << a << endl;

公司真题:https://www.nowcoder.com/exam/company?questionJobId=10\&subTabName=written_page

专项练习https://www.nowcoder.com/exam/intelligent?questionJobId=10\&subTabName=intelligent_page\&tagId=273590

相关推荐
明月_清风22 分钟前
多模式字符串匹配:Trie 与 AC 自动机
后端·算法
木井巳28 分钟前
【BFS/DFS 解决 FloodFill 算法】衣橱整理
java·算法·leetcode·深度优先·广度优先·宽度优先
热心网友俣先生33 分钟前
2026年高教社杯数模国赛A题:五年命题规律与预测
算法·机器学习·数学建模
handler0133 分钟前
【Linux】信号:内核的“敲门声”
linux·运维·服务器·c++·c·信号·signal
神明不懂浪漫38 分钟前
【第四章】索引——B+树、回表,加快数据库的查找能力的利器
开发语言·数据结构·数据库·经验分享·笔记·b树
欧特克_Glodon1 小时前
OpenCV计算机视觉开发入门与实践<三十五>:开发视频播放器
c++·opencv·计算机视觉·音视频
LuminousCPP1 小时前
数据结构 - 排序(二):快速排序从错误初版到优化版|双指针划分 + 三数取中 + 小区间插入优化
c语言·数据结构·笔记·算法·排序算法
hansang_IR2 小时前
【题解】P9753 [CSP-S 2023] 消消乐
数据结构·c++·算法
竞赛考级题库2 小时前
202606 青少年等级考试C/C++真题一级 建议答题时长:60min
java·c语言·c++
shehuiyuelaiyuehao2 小时前
算法40,模拟运算,替换所有的问号
数据结构·算法·leetcode