简单计数器

Java 源码解读
Java 集合类源码,JUC 源码解读
wangxiaoming



                                                   简单计数器

解释: synchronized  关键字

  当两个线程同时访问synchronized 同步代码块是只能有一个线程得到执行 另外一个进程必须等到当前代码执行完才可以执行

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
    
   <%
     Integer count = null;   //Integer 是一个类 int是一个基本类型
     synchronized(application)
     {
    	 //从内存中读取访问量
    	 count = (Integer)application.getAttribute("basic.counter");
    	 if(count == null)
    		count = new Integer(0);
    	 count = new Integer(count.intValue() + 1); //开始计数
    	 application.setAttribute("basic.counter", count);
     }
   %>
<html>
<head>
<title>简单计数器</title>
</head>
<body>
<center>
    <font  size = 5 color = blue >简单计数器</font>
    <br>
    <hr>
    <br>
   <font size = 6 color = blue> 您是本站第<%= count %>位客人!</font>
    </center>
</body>
</html>


南阳OJ:

多边形重心问题

时间限制:3000 ms  |  内存限制:65535 KB
难度:5
描述
在某个多边形上,取n个点,这n个点顺序给出,按照给出顺序将相邻的点用直线连接, (第一个和最后一个连接),所有线段不和其他线段相交,但是可以重合,可得到一个多边形或一条线段或一个多边形和一个线段的连接后的图形; 
如果是一条线段,我们定义面积为0,重心坐标为(0,0).现在求给出的点集组成的图形的面积和重心横纵坐标的和;
输入
第一行有一个整数0<n<11,表示有n组数据;
每组数据第一行有一个整数m<10000,表示有这个多边形有m个顶点;
输出
输出每个多边形的面积、重心横纵坐标的和,小数点后保留三位;
样例输入
3
3
0 1
0 2
0 3
3
1 1
0 0
0 1
4
1 1
0 0
0 0.5
0 1
样例输出
0.000 0.000
0.500 1.000
0.500 1.000


下面是没有A掉的代码,等待搞定!

#include<iostream>
#include<cstdio>
#include<cmath>
#include<algorithm>
using namespace std;
const int  N = 100010;
struct Point
{
   double x, y;
   Point():x(0), y(0){}
}p[N];

int main()
{
    int ncase , m ;
    scanf("%d", &ncase);
    while(ncase--)
    {
        scanf("%d", &m);
        for(int i = 0 ; i < m ; i++)
        {
            scanf("%lf%lf", &p[i].x, &p[i].y);
        }
        //上面是输入部分,选择要想的是如何可以计算重心
        //根据将多边形分解成三角形 计算三角形面积
        //如何把面积和重心联系在一起,自己百度吧, 文库里面有个专门论文写的就是这个
        double result = 0;   //用来记录面积
        Point ans;       //用来记录最终重心的位置与面积的乘积 而且已经初始化为(0,0)了
        for(int i = 1 ; i <= m ; i++ )
        {//为什么要%m 是为了要组成一个封闭的图案最后那个是m %m 就是0 最后就是结果封闭了
            double  temp =(p[i%m].x * p[i].y - p[i-1].x*p[i%m].y)/2.0;    //首先记录三角形面积x2*y1 - x1*y2 即可进行求解
            result += temp;
            ans.x  += temp*(p[i%m].x + p[i-1].x)/3.0;
            ans.y  += temp*(p[i%m].y + p[i-1].y)/3.0;
        }
        //下面输出面积即可
        printf("%.3lf %.3lf\n", fabs(result), (ans.x + ans.y)/result);

    }
    return 0;
}


wangxiaoming CSDN认证博客专家 架构 Spring Boot Redis
博客是很好的总结和记录工具,如果有问题,来不及回复,关注微信公众号:程序员开发者社区,获取我的联系方式,向我提问,也可以给我发送邮件,联系 1275801617@qq.com
©️2020 CSDN 皮肤主题: Age of Ai 设计师: meimeiellie 返回首页
实付0元
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值