130道基础OJ编程题之: 89~107
130道基础OJ编程题之: 89~107
@
89. BC101 班级成绩输入输出

import java.util.Scanner;
// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
for(int i = 0; i < 5; i++) {
float sum = 0.0f;
float score = 0.0f;
int j = 0;
for(j = 0; j < 5;j++) {
score = in.nextFloat();
sum += score;
System.out.printf("%.1f ",score);
}
System.out.printf("%.1f\n",sum);
}
}
}
99. BC102 矩阵元素定位

import java.util.Scanner;
// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
// 注意 hasNext 和 hasNextLine 的区别
int n = in.nextInt();
int m = in.nextInt();
int[][] arr = new int[n][m];
for(int i = 0; i < n; i++) {
for(int j = 0; j < m;j++) {
arr[i][j] = in.nextInt();
}
}
int n2 = in.nextInt();
int m2 = in.nextInt();
System.out.println(arr[n2 - 1 ][m2 - 1]);
}
}
100. BC103 序列重组矩阵

import java.util.Scanner;
// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int n = in.nextInt();
int m = in.nextInt();
int[] arr = new int[n * m ];
for(int i = 0; i < n * m; i++) {
arr[i] = in.nextInt();
}
for(int i = 1; i <= n * m; i++) {
System.out.printf("%d ",arr[i-1]);
if(i % m == 0) {
System.out.println();
}
}
}
}
101. BC104 最高身高

import java.util.Scanner;
// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int n = in.nextInt();
int m = in.nextInt();
int x = 0;
int y = 0;
int max = 0;
// 注意它的下标,不是从 0 开始,而是从 1 开始的
for(int i = 1; i <= n; i++ ) {
for(int j = 1; j <= m ;j++) {
int num = in.nextInt();
if( num > max) {
max = num;
x = i;
y = j;
}
}
}
System.out.printf("%d %d",x,y);
}
}
102. BC105 矩阵相等判定

import java.util.Scanner;
import java.util.Arrays;
// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int n = in.nextInt();
int m = in.nextInt();
int[] arr = new int[n * m];
int[] arr2 = new int[n* m];
for(int i = 0;i < n * m; i++) {
arr[i] = in.nextInt();
}
for(int i = 0; i < n * m ; i++) {
arr2[i] = in.nextInt();
}
if(Arrays.equals(arr,arr2)) {
System.out.println("Yes");
} else {
System.out.println("No");
}
}
}
103. BC106 上三角矩阵判定

import java.util.Scanner;
// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int n = in.nextInt();
int[][] a = new int[n][n];
int i = 0;
int j = 0;
for (i = 0; i < n; i++) {
for (j = 0; j < n; j++) {
a[i][j] = in.nextInt();
}
}
//判断
for (i = 0; i < n; i++) {
for (j = 0; j < n; j++) {
if (i > j) {
if (a[i][j] != 0) {
// 下三角有不是0的就不满足printf("NO");
System.out.println("NO");
return;
}
}
}
}
System.out.println("YES");
}
}
104. BC107 矩阵转置

import java.util.Scanner;
// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int n = in.nextInt(); // 2
int m = in.nextInt(); // 3
int[][] arr = new int[n][m];
for(int i = 0; i < n; i ++) {
for(int j = 0; j < m; j++) {
arr[i][j] = in.nextInt(); // 读取
}
}
for(int i = 0; i < m; i ++) { // 2
for(int j = 0; j < n; j++) { // 3
System.out.printf("%d ",arr[j][i]); // 注意: 这里防止数组越界了,因为是行列倒置了。
}
System.out.println();
}
}
}
105. BC108 矩阵交换

import java.util.Scanner;
// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int n = in.nextInt();
int m = in.nextInt();
int[][] arr = new int[n][m];
// 读取输入内容
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
arr[i][j] = in.nextInt();
}
}
int time = in.nextInt(); // 读取判断,输入替换的次数
for (int i = 0; i < time; i++) {
// 读取判断是否,为是 一个 "c" 还是 "r"
String str = in.next();
// 读取替换的内容
int a = in.nextInt();
int b = in.nextInt();
if (str.contains("c")) { // // 当且仅当此字符串包含指定的char值序列时才返回true。 // 为 c 进行一个行列的变换
for (int h = 0; h < n; h++) {
int temp = arr[h][a - 1];
arr[h][a - 1] = arr[h][b - 1]; // 行列内容替换
arr[h][b - 1] = temp;
}
} else if (str.contains("r")) { // 为 r 是对行进行替换,交换
for (int h = 0; h < m; h++) {
int temp = arr[a - 1][h];
arr[a - 1][h] = arr[b - 1][h]; // 行列内容替换
arr[b - 1][h] = temp;
}
}
}
// 遍历数组,
for(int i = 0; i < n; i++) {
for(int j = 0; j < m ;j++) {
System.out.print(arr[i][j] + " ");
}
System.out.println();
}
}
}
106. BC109 杨辉三角

import java.util.Scanner;
// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int n = in.nextInt();
int[][] arr = new int[n][n];
for (int i = 0; i < n; i++) {
for (int j = 0; j <= i; j++) {
if (i == j) { // 当 i == j 的时候,就是最边上的位置,是为 1 的
arr[i][j] = 1;
} else if (j == 0) { // 第一列的内容是为 1 的
arr[i][j] = 1;
} else if( i > 1 && j > 0){ // 否则每个数等于它左上方和上方的两数之和,第一列和对角位置,不需要动
arr[i][j] = arr[i - 1][j - 1] + arr[i - 1][j];
}
}
}
// 遍历数组
for(int i = 0; i < n; i++) {
for(int j = 0; j <= i; j++) {
System.out.printf("%5d", arr[i][j]);
}
System.out.println();
}
}
}
107. BC110 井字棋

import java.util.Scanner;
// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
char[][] arr = new char[3][3];
for (int i = 0; i < arr.length; i++) {
// arr[i].length 表示的是第一行的字符的个数
for (int j = 0; j < arr[i].length; j++) {
arr[i][j] = in.next().charAt(0); // 字符串截取第一个字符内容
}
}
// 判断,是否胜利,横向,竖向,正对角线,右对角线
// 竖
for (int i = 0; i < arr.length; i++) {
if (arr[0][i] == arr[1][i] && arr[1][i] == arr[2][i]) {
if (arr[0][i] == 'K') {
System.out.println("KiKi wins!");
return;
} else if (arr[0][i] == 'B') {
System.out.println("BoBo wins!");
return;
} else {
System.out.println("No winner!");
return;
}
}
}
// 横向
for (int i = 0; i < arr.length; i++) {
if (arr[i][0] == arr[i][1] && arr[i][1] == arr[i][2]) {
if (arr[i][0] == 'K') {
System.out.println("KiKi wins!");
return;
} else if (arr[i][0] == 'B') {
System.out.println("BoBo wins!");
return;
} else {
System.out.println("No winner!");
return;
}
}
}
// 正对角线
if (arr[0][0] == arr[1][1] && arr[1][1] == arr[2][2]) {
if (arr[0][0] == 'K') {
System.out.println("KiKi wins!");
return;
} else if (arr[0][0] == 'B') {
System.out.println("BoBo wins!");
return;
} else {
System.out.println("No winner!");
return;
}
}
// 右对角线
if (arr[0][2] == arr[1][1] && arr[1][1] == arr[2][0]) {
if (arr[0][2] == 'K') {
System.out.println("KiKi wins!");
return;
} else if (arr[0][2] == 'B') {
System.out.println("BoBo wins!");
return;
} else {
System.out.println("No winner!");
return;
}
}
System.out.println("No winner!");
}
}
最后:
“在这个最后的篇章中,我要表达我对每一位读者的感激之情。你们的关注和回复是我创作的动力源泉,我从你们身上吸取了无尽的灵感与勇气。我会将你们的鼓励留在心底,继续在其他的领域奋斗。感谢你们,我们总会在某个时刻再次相遇。”
130道基础OJ编程题之: 89~107的更多相关文章
- 牛客OJ——[编程题]A+B和C__如何输入多组测试数据(测试OK)
几个要注意的地方: (1)Java OJ,必须将类名写成Main (2)关于如何输入多组测试数据,用二维数组去存储是一个方法,直接在while里面做也可以 但是如果 (3)关于整形 ...
- 50道经典的JAVA编程题 (1-5)
后天java考试,现在闲着也是闲着,来做做java题吧. 前不久在网上看见了50道java算法编程题,感觉还不错,记得大一学C语言的时候做过一些,现在用java来回顾下吧,也算应付考试吧. 代码要是有 ...
- 各位大佬Python的第一部分道基础题已经整理好了,希望大家面试的时候能用的上。
Python的第一部分道基础题,希望大家面试的时候能用的上. 1.为什么学习Python? Python是目前市面上,我个人认为是最简洁.最优雅.最有前途.最全能的编程语言,没有之一. 2.通过什么途 ...
- 汤姆大叔的6道javascript编程题题解
看汤姆大叔的博文,其中有篇(猛戳这里)的最后有6道编程题,于是我也试试,大家都可以先试试. 1.找出数字数组中最大的元素(使用Math.max函数) var a = [1, 2, 3, 6, 5, 4 ...
- 50道经典的JAVA编程题(汇总)
这是一次不可思议的编程历程.从2013年的最后一天开始做这份题,中间连续好几天的考试,包括java考试(今天考试的JAVA编程题),直到今天完成了.挺有成就感的...废话不多说了,来电实质性的吧. 全 ...
- 50道经典的JAVA编程题(46-50)
50道经典的JAVA编程题(46-50),最后五道题了,这是一个美妙的过程,编程真的能让我忘掉一切投入其中,感觉很棒.今天下午考完微机原理了,大三上学期就这样度过了,这学期算是解放了,可是感觉我还是没 ...
- 50道经典的JAVA编程题(41-45)
50道经典的JAVA编程题(41-45),苦逼的程序猿,晚上睡不着了编程吧~今天坚持做10道题!发现编程能是我快乐...O(∩_∩)O哈哈~能平静我烦乱的心,剩下5道题留到考试完了再做吧!该睡觉了.. ...
- 50道经典的JAVA编程题(36-40)
50道经典的JAVA编程题(36-40),今天晚上心情压抑,不爽,继续做题,管它明天考试,我继续我的java,一个周末都在看微机原理看得的很头疼啊~明天该挂科就挂吧,不在乎了~~~ [程序36] Ar ...
- 50道经典的JAVA编程题(31-35)
50道经典的JAVA编程题(31-35),今天考完了java,在前篇博客里面贴出了题了,见:<今天考试的JAVA编程题>.考完了也轻松了,下个星期一还考微机原理呢,啥都不会,估计今天就做到 ...
- 50道经典的JAVA编程题(26-30)
50道经典的JAVA编程题(26-30),这么晚了,早点睡了要,明早8点考java祝我好运吧!!!晚安~ [程序26]Ex26.java(跳过了,好没意思的题啊)题目:请输入星期几的第一个字母来判断一 ...
随机推荐
- Qt音视频开发13-视频解码线程基类的设计
一.前言 这个解码线程基类的设计,是到目前为止个人觉得自己设计的最好的基类之一,当然也不是一开始就知道这样设计,没有个三五年的摸爬滚打以及社会的毒打,是想不到要这样设计的,一方面是要不断提炼各种视频类 ...
- Qt通用方法及类库12
函数名 //初始化表格 static void initTableView(QTableView *tableView, int rowHeight = 25, bool headVisible = ...
- Linux防火墙端口设置策略
# 当我们在服务器上部署好我们的环境后,一定要检查一下防火墙的端口策略:否则客户端无法连接.# 查看防火墙状态 systemctl status firewalld # 查看防火墙设已开放的端口 # ...
- C# 给当前程序创建桌面快捷方式
C# 给当前程序创建桌面快捷方式 //by wgscd //date 2024-10-22 using System; using System.Reflection; using System.IO ...
- 修改Maven仓库到国内
修改Maven仓库到国内 Maven home directory:选择已安装的Maven目录. User settings file:根据安装Maven自动显示的配置文件settings.xml路径 ...
- webrtc-streamer实时播放监控
公司要做web端监控实时播放,经过调研,webrtc-streamer的方式对前后端项目侵入最少,且没有延迟卡钝的现象. 一.准备工作 一个摄像头,摄像头对应的rtsp流链接,一台电脑,一个vue项目 ...
- Hetemit pg walkthrough Intermediate
nmap ┌──(root㉿kali)-[~] └─# nmap -p- -A 192.168.157.117 Starting Nmap 7.94SVN ( https://nmap.org ) a ...
- vscode python remote debug极速入门
本文适用范围 主要适用于debug python 程序,尤其是深度学习刚入门需要使用remote 连接到linux进行程序运行,想调试一下的同学. 当然非深度学习也可以参考食用本文哈哈哈. 极速入门版 ...
- P3092 [USACO13NOV] No Change G 题解
传送门 题解 思路 看到 \(1\le k\le16\),我们想到状压DP. 以每枚硬币是否被使用为状态,对其进行枚举. 令 \(dp_i\) 表示状态 \(i\) 下最多能支付到第 \(dp_i\) ...
- min-max 容斥(最值反演)学习笔记
min-max 容斥,又名最值反演(我其实更喜欢后面这个名字),是一种常用的反演思想. 引入 在皇后游戏一题中,我们曾经证明过 \(\max(a,b)-a-b=-\min(a,b)\). 我们尝试推广 ...
