九度oj--1001和1048

题目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("锐角三角形");
        }
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值