题目1001:A+B for Matrices
题目描述:
This time, you are supposed to find A+B where A and B are two matrices, and then count the number of zero rows and columns.
输入:
The input consists of several test cases, each starts with a pair of positive integers M and N (≤10) which are the number of rows and columns of the matrices, respectively. Then 2*M lines follow, each contains N integers in [-100, 100], separated by a space. The first M lines correspond to the elements of A and the second M lines to that of B.
The input is terminated by a zero M and that case must NOT be processed.
输出:
For each test case you should output in one line the total number of zero rows and columns of A+B.
样例输入:
2 2
1 1
1 1
-1 -1
10 9
2 3
1 2 3
4 5 6
-1 -2 -3
-4 -5 -6
0
样例输出:
1
5
import java.util.*;
public class Main {
public static void main(String args[]) {
Scanner cin = new Scanner(System.in);
int arr1[][], arr2[][], rows=0, columns=0, count;
boolean isZero;
while(cin.hasNext()){
count = 0;
//读入行数和列数
rows = cin.nextInt();
if(rows == 0)
return;
else{
columns = cin.nextInt();
//读入数组
arr1 = new int[rows][columns];
arr2 = new int[rows][columns];
for(int i = 0; i < rows; i++){
for(int j = 0; j < columns; j++){
arr1[i][j] = cin.nextInt();
}
}
for(int i = 0; i < rows; i++){
for(int j = 0; j < columns; j++){
arr2[i][j] = cin.nextInt();
}
}
//求和
for(int i = 0; i < rows; i++){
for(int j = 0; j < columns; j++){
arr1[i][j] = arr1[i][j] + arr2[i][j];
}
}
//计算值都为0的行和列的数目
for(int i = 0; i < rows; i++){
isZero = true;
for(int j = 0; j < columns; j++){
if(arr1[i][j] != 0){
isZero = false;
break;
}
}
if(isZero == true)
count++;
}
for(int j = 0; j < columns; j++){
isZero = true;
for(int i = 0; i < rows; i++){
if(arr1[i][j] != 0){
isZero = false;
break;
}
}
if(isZero == true)
count++;
}
}
System.out.println(count);
}
}
}
一遍过,但是在写的时候又犯了两个老毛病:一个是“=”和“==”的区别;一个是在输出count后进入下一个例子时,需要把count的值恢复为0;
题目1048:判断三角形类型
题目描述:
给定三角形的三条边,a,b,c。判断该三角形类型。
输入:
测试数据有多组,每组输入三角形的三条边。
输出:
对于每组输入,输出直角三角形、锐角三角形、或是钝角三角形。
样例输入:
3 4 5
样例输出:
直角三角形
import java.util.*;
public class Main {
public static void main(String args[]) {
Scanner cin = new Scanner(System.in);
int[] arr;
int a,b;
while(cin.hasNext()){
arr = new int[3];
for(int i = 0; i < 3; i++)
arr[i] = cin.nextInt();
Arrays.sort(arr);
a = arr[0]*arr[0] + arr[1]*arr[1];
b = arr[2]*arr[2];
if( a == b )
System.out.println("直角三角形");
else if(a < b)
System.out.println("钝角三角形");
else
System.out.println("锐角三角形");
}
}
}