首页 > 编程语言 >ACM输入输出模板(上)【Java、C++版】

ACM输入输出模板(上)【Java、C++版】

时间:2024-11-30 15:30:11浏览次数:10  
标签:Java Scanner int System ACM while C++

文章目录

1、多行输入,每行两个整数

C++

#include<iostream>
 using namespace std;
 int main() {
	 int a, b;
	 while (cin >> a >> b) cout << a + b << endl;
 }

Java

import java.lang.*;
import java.util.*;

public class Main{
	public static void main(String[] args){
		Scanner in = new Scanner(System.in);
		while(in.hasNextInt()){
			int a = in.nextInt();
			int b = in.nextInt();
			System.out.println(a+b);
        }
    }
}

2、多组数据,每组第一行为n,之后输入n行两个整数

C++

#include<iostream>
using namespace std;
int main() {
 	int n, a, b;
 	while (cin >> n) {
	 	while (n--) {
			cin >> a >> b;
		 	cout << a + b << endl;
       	}
   	}
}

Java

import java.util.Scanner;
public class Main {
	public static void main(String[] args) {
		Scanner scanner = new Scanner(System.in);
		while (scanner.hasNext()) {
			int n = scanner.nextInt();
			while (n-- > 0) {
				int a = scanner.nextInt();
				int b = scanner.nextInt();
				System.out.println(a + b);
            }
        }
    }
}

3、输入若干行,每行输入两个整数,遇到特定条件终止

C++

#include<iostream>
using namespace std;
int main() {
	int a, b;
	while (cin >> a >> b) {
		if (a == 0 && b == 0) break;
		cout << a + b << endl;
    }
}

Java

import java.util.Scanner;
public class Main {
	public static void main(String[] args) {
		Scanner scanner = new Scanner(System.in);
		while (scanner.hasNext()) {
			int a = scanner.nextInt();
			int b = scanner.nextInt();
			if (a == 0 && b == 0) {
				break;
			}
			System.out.println(a + b);
	    }
    }
}

4、若干行输⼊,遇到0终止,每行第⼀个数为N,表示本行后面有N个数

C++

#include<iostream>
using namespace std;
int main(){
	int n, a;
	while (cin >> n) {
		if (n == 0) break;
		// 计算累加值
		int sum = 0;
		while (n--) {
			cin >> a;
			sum += a;
        }
		cout << sum << endl;
    }
}

Java

import java.util.Scanner;
public class Main {
	public static void main(String[] args) {
		Scanner scanner = new Scanner(System.in);
		while (scanner.hasNext()) {
			int n = scanner.nextInt();
			if (n == 0) {
				break;
            }
			int sum = 0;
			for (int i = 0; i < n; i++) {
				sum += scanner.nextInt();
            }
			System.out.println(sum);
        }
    }
}

5、若干行输入,每行包括两个整数a和b,由空格分隔,每行输出后接一个空行。

C++

#include<iostream>
using namespace std;
int main() {
	int a, b;
	while (cin >> a >> b) cout << a + b << endl << endl;
}

Java

import java.util.Scanner;
public class Main{
	public static void main(String[] args){
		Scanner sc = new Scanner(System.in);
		while(sc.hasNextLine()){
			int a = sc.nextInt();
			int b = sc.nextInt();
			System.out.println(a + b);
			System.out.println();
        }
    }
}

6、多组n行数据,每行先输入一个整数N,然后在同一行内输入M个整数,每组输出之间输出一个空行。

C++

#include<iostream>
using namespace std;
int main() {
	int n, m, a;
	// 输⼊多组数据
	while (cin >> n) {
		// 每组数据有n⾏
		while(n--) {
			cin >> m;
			int sum = 0;
			// 每⾏有m个
			while(m--) {
				cin >> a;
				sum += a;
        	}
			cout << sum << endl;
			cout << endl;
		}
	}
}

Java

import java.util.Scanner;
public class Main{
	public static void main(String[] args){
		Scanner sc = new Scanner(System.in);
		while(sc.hasNextLine()){
			int N = sc.nextInt();
			// 每组有n⾏数据
			while(N-- > 0){
				int M = sc.nextInt();
				int sum = 0;
				// 每⾏有m个数据
				while(M-- > 0){
					sum += sc.nextInt();
                }
				System.out.println(sum);
				if(N > 0) System.out.println();
            }
        }
    }
}

7、多组测试样例,每组输入数据为字符串,字符用空格分隔,输出为小数点后两位

C++

#include <iostream>
using namespace std;
int main() {
	string s;
	while (getline(cin, s)) { // 接受⼀整⾏字符串
		for(int i = 0; i < s.size();i++) { // 遍历字符串
		}
    }
}

Java

import java.util.*;
public class Main {
	public static void main(String[] args) {
		Scanner in = new Scanner(System.in);
		while (in.hasNextLine()) {
			String line = in.nextLine(); // 接收⼀整⾏字符串作为输⼊
			String[] items = line.split(" "); // 字符串分割成数组
			for (String item : items) { // 遍历数组
		    }
        }
    }
}

8、多组测试用例,第一行为正整数n,第二行为n个正整数,n=0时,结束输入,每组输出结果的下面都输出一个空行。

C++

#include<iostream>
#include<vector>
using namespace std;
int main() {
	int n;
	while (cin >> n) {
		if (n == 0) break;
		// 创建vector
		vector<int> nums = vector<int>(n, 0);
		// 输⼊⼀组数据
		for (int i = 0; i < n; i++) {
			cin >> nums[i];
        }
		// 遍历
		for (int i = 0; i < n; i++) {
			cout << nums[i];
        }
		cout << result << endl;
		cout<< endl;
    }
 }

Java

import java.util.ArrayList;
import java.util.Scanner;
public class Main {
	public static void main(String[] args) {
		Scanner scanner = new Scanner(System.in);
		while (scanner.hasNext()) {
			Integer size = scanner.nextInt();
			if (size == 0) {
				break;
            }
			// 创建list
			ArrayList<Integer> list = new ArrayList<>();
			// 添加⼀组数据到list中
			for (int i = 0; i < size; i++) {
				int num = scanner.nextInt();
				list.add(num);
            }
			// 遍历
			for (int i = 0; i < list.size(); i++) {
				System.out.println(list.get(i));
            }
			System.out.println(res);
			System.out.println();
        }
    }
}

9、多组测试数据,每组数据只有一个整数,对于每组输入数据,输出一行,每组数据下方有一个空行。

C++

#include<iostream>
using namespace std;
int main() {
	int n, a;
	while (cin >> n) {
		while (n != 0) {
			a = (n % 10); // 获取各位数据
			n = n / 10;
        }
		cout << result << endl;
		cout << endl;
    }
}

Java

import java.util.*;
public class Main {
	public static void main(String[] args) {
		Scanner in = new Scanner(System.in);
		while (in.hasNextInt()) {
			int n = in.nextInt();
			while (n > 0) {
				int tmp = n % 10; // 获取各位数据
				n /= 10;
	        }
			System.out.println(res);
			System.out.println();
	    }
    }
}

10、多组测试数据,每个测试实例包括2个整数M,K(2<=k<=M<=1000)。M=0,K=0代表输入结束。

C++

#include<iostream>
using namespace std;
int main() {
	int m, k;
	while (cin >> m >> k) {
		if (m == 0 && k == 0) break;
		int sum = m + m / k; // 第⼀轮回得到总话费
		cout << sum << endl;
    }
}

Java

import java.util.*;
public class Main{
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		while (sc.hasNextInt()) {
			int m = sc.nextInt();
			int k = sc.nextInt();
			if (m == 0 && k == 0) break;
			int sum = 0;
			System.out.println(sum);
		}
	}
}

11、多组测试数据,首先输入一个整数N,接下来N行每行输入两个整数a和b,读取输入数据到Map。

C++

#include<iostream>
#include<vector>
using namespace std;
int main() {
	int n, a, b;
	vector<int> nums = vector<int>(30, 0); // 使⽤数组来记录映射关系,初始化为0
	while (cin >> n) {
		while (n--) {
			cin >> a >> b;
			nums[a] = b; // 记录映射关系
        }
    }
}

Java

import java.util.*;

public class Main{
	static Map<Integer, Integer> map = new HashMap();
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		while (sc.hasNextInt()) {
			int n = sc.nextInt();
			for (int i = 0; i < n; i++) {
				int a = sc.nextInt();
				int b = sc.nextInt();
				map.put(a, b);
			}
		}
	}
}

12、多行输入,每行输入为一个字符和一个整数,遇到特殊字符结束。

C++

#include<iostream>
using namespace std;
int main() {
	char c;
	int n;
	while(cin >> c){
		if(c == '@')
		break;
		cin >> n;
		myprint(c, n);
	}
	return 0;
}

Java

import java.util.Scanner;
public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		while (sc.hasNext()) {
			String line = sc.nextLine();
			if (line.equals("@"))
			break;
			
			String[] inputs = line.split(" ");
			char ch = inputs[0].charAt(0);
			int n = Integer.parseInt(inputs[1]);
        }
		sc.close();
    }
}

13、第一行是一个整数n,表示一共有n组测试数据,之后输入n行字符串。

C++

#include<iostream>
#include<string>
using namespace std;
int main() {
	int n;
	string result, s;
	cin >> n;
	getchar(); // 吸收⼀个回⻋,因为输⼊n之后,要输⼊⼀个回⻋
	while (n--) {
		getline(cin, s);
		for (int i = 1; i < s.size() - 1; i++) {
        }
    	cout << result << endl;
    }
}

Java

import java.util.Scanner;
public class Main{
	public static void main(String[] args) {
		Scanner in = new Scanner(System.in);
		int n=in.nextInt();
		in.nextLine();
		for (int j = 0; j < n; j++) {
			String s=in.nextLine();
			StringBuilder sb=new StringBuilder();
			
			System.out.println(sb.toString().toUpperCase());
        }
    }
}

14、第一行是一个整数n,然后是n组数据,每组数据2行,每行为一个字符串,为每组数据输出一个字符串,每组输出占一行。

C++

#include<iostream>
#include<string>
using namespace std;
int main() {
	int n;
	cin >> n;
	getchar(); // 吸收n后的⼀个回⻋
	while (n--) {
		string s, t;
		cin >> s >> t;
		string result = "";
		cout << result << endl;
    }
}

Java

import java.util.Scanner;
public class Main{
	public static void main(String[] args) {
		Scanner in = new Scanner(System.in);
		int n = in.nextInt();
		for (int i = 0; i < n; i++) {
			String a = in.next();
			String b = in.next();
			StringBuilder sb = new StringBuilder(a);
			System.out.println(sb.toString());
        }
    }
}

15、多组测试数据,第一行是一个整数n,接下来是n组字符串,输出字符串。

C++

#include<iostream>
#include<string>
using namespace std;
int main() {
	int n;
	cin >> n;
	string s;
	while (n--) {
		cin >> s;
		
		cout << s << endl;
	}
}

Java

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class Main {
	public static void main(String[] args) throws IOException {
		BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
		String str = null;
		while((str = reader.readLine())!= null){
			StringTokenizer tokenizer = new StringTokenizer(str);
			int n = Integer.parseInt(tokenizer.nextToken());
			for(int i = 0; i < n; i++){
				String s = reader.readLine();
				StringBuilder sb = new StringBuilder();
            }
        }
    }
}

标签:Java,Scanner,int,System,ACM,while,C++
From: https://blog.csdn.net/qq_56699753/article/details/144154232

相关文章

  • Java技术复习提升 17反射
    本章涉及到框架开发中必用的反射以及常用方法很重要注重理解并实践第17章反射17.1一个需求引出反射packagecom.fsl;publicclassCat{privateStringname="招财猫";publicintage=10;//public的publicCat(){}//无参构造器publi......
  • Java入门:20.Calendar类与新日期类的使用
     1Calendar日历类*可以针对于日期中的每一个日期项,进行操作 *年,月,日,时,分,秒,毫秒,星期*Calendar对象创建Calendartime=Calendar.getInstance();//默认表示当前系统时间  *Calendar对象与Date对象之间的转换//Date-->Calendar Calendartime=Cale......
  • C++语言之旅【3】---引用(很重要的知识点!!!)
    本章概述引用彩蛋时刻!!!引用引用的概念:引用就是给变量取个新的别名。引用的定义格式:类型&别名=引用对象。给大家用代码展示一下引用的格式://引用的格式:inta=0;int&b=a; //b就是a的引用,就相当于给a取别名为b引用解释:引用不是新定义一个变量,只是给变量取个......
  • P1135 奇怪的电梯 JAVA题解
    题目描述呵呵,有一天我做了一个梦,梦见了一种很奇怪的电梯。大楼的每一层楼都可以停电梯,而且第 ii 层楼(1≤i≤N1≤i≤N)上有一个数字 KiKi​(0≤Ki≤N0≤Ki​≤N)。电梯只有四个按钮:开,关,上,下。上下的层数等于当前楼层上的那个数字。当然,如果不能满足要求,相应的按钮就会失灵。例......
  • P2658 汽车拉力比赛 JAVA题解
    package篮桥杯.d;importjava.io.BufferedReader;importjava.io.IOException;importjava.io.InputStreamReader;importjava.io.StreamTokenizer;importjava.util.LinkedList;importjava.util.Queue;publicclassMain{//自定义的输入类,比普通Scanner快两......
  • Java 设计模式——观察者模式:从优衣库不使用新疆棉事件看系统的动态响应
    背景事件:近日,优衣库宣布不再使用新疆棉花,这一举措引发了广泛的社会讨论。消费者的反应和舆论的压力,让优衣库的决策迅速影响了市场和品牌形象。类似的,许多系统也面临着需要根据外部事件或状态的变化,做出即时反应的需求。在软件设计中,观察者模式(ObserverPattern)就是为了处理这种......
  • 如何让Java的线程彼此同步?
    在Java中,线程同步是一个重要的概念,用于确保多个线程在访问共享资源时能够保持数据的一致性和正确性。Java提供了多种线程同步机制,以下是具体的同步方法:一、使用synchronized关键字synchronized同步方法:即在方法声明中使用synchronized关键字。当一个线程访问某个对象的synchr......
  • C/C++头文件以及避免头文件包含造成的重定义方法
    头文件是扩展名为 .h 的文件,包含了C函数声明和宏定义,被多个源文件中引用共享。有两种类型的头文件:程序员编写的头文件和编译器自带的头文件。在程序中要使用头文件,需要使用C预处理指令 #include 来引用它。前面我们已经看过 stdio.h 头文件,它是编译器自带的头文件。......
  • 【C++算法】21.二分查找算法_山脉数组的峰顶索引
    文章目录题目链接:题目描述:解法C++算法代码:图解题目链接:852.山脉数组的峰顶索引题目描述:解法暴力解法:若:arr=[0,1,2,3,2,1,0]可以定义一个指针指向第一个元素,如果它后面的元素比它大,那么他就不是峰值。当第一次遇到一个数是大于后面那个数的时候,那个数就......
  • 【C++习题】22.二分查找算法_寻找峰值
    文章目录题目链接:题目描述:解法C++算法代码:图解题目链接:162.寻找峰值题目描述:解法暴力解法:三种山峰的情况开始元素比它后面一个元素大的话直接就是山峰了(因为nums[-1]=nums[n]=-∞)普通山峰最后一个元素比前面一个元素大的话直接就是山峰了二分算......