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