杭电oj2035、2036题详解(Java版)

2035.人见人爱A^B

在这里插入图片描述

解题思路:

A的B次方就是A自乘B次,题目要求输出最后三位整数,所以每次A自乘时保留后三位就可以,对1000取余就可以获得后三位数。

实现代码:

import java.util.Scanner;
public class Main {
    public static void main(String[] args) {
        Scanner s=new Scanner(System.in);
        while(s.hasNext()) {
            int a=s.nextInt();
            int b=s.nextInt();
            if(a==0&&b==0) {
                break;
            }else {
                int w=1;
                for (int i = 0; i < b; i++) {
                    w=w*a;
                    w=w%1000;
                }
                System.out.println(w);
            }
        }
    }

}

2036.改革春风吹满地

在这里插入图片描述

解题思路:

任意一个n边形都可以分解成n-2个三角形,把原点作为三角形的一个顶点,逆时针方向相邻的两个点作为另两点,利用叉乘法求各个三角形的面积,然后相加。

实现代码:

import java.util.Scanner;
public class Main {
    public static void main(String[] args) {
        Scanner s=new Scanner(System.in);
        while(s.hasNext()) {
            int n=s.nextInt();
            if(n==0) {
                break;
            }else {
	            int []a=new int[n];
	            int []b=new int[n];
	            double S=0;
	            for (int i = 0; i < n; i++) {
	                a[i]=s.nextInt();
	                b[i]=s.nextInt();
	            }
	            for (int i = 0; i < n-1; i++) {
	                S=a[i]*b[i+1]-a[i+1]*b[i]+S;
	            }
	            S=S+a[n-1]*b[0]-a[0]*b[n-1];
	            System.out.printf("%.1f",S/2);
	            System.out.println();
        	}
    	}
    }
}

注:叉乘法求多边形的面积可参考https://wenku.baidu.com/view/d6b802aed3d233d4b14e852458fb770bf78a3b02.html?wkts=1694096600797&bdQuery=%E5%8F%89%E4%B9%98%E6%B3%95%E6%B1%82%E4%BB%BB%E6%84%8F%E5%A4%9A%E8%BE%B9%E5%BD%A2%E7%9A%84%E9%9D%A2%E7%A7%AF

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Weirdo!

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值