LQ0116 方格计数数学计算

Posted 海岛Blog

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LQ0116 方格计数数学计算相关的知识,希望对你有一定的参考价值。

题目来源:蓝桥杯2018初赛 Java A组I题

题目描述
如图所示,在二维平面上有无数个1x1的小方格。
我们以某个小方格的一个顶点为圆心画一个半径为 50000 的圆。
你能计算出这个圆里有多少个完整的小方格吗?

输出格式
输出一个整数表示答案

问题分析
计算时间比较长,需要离线计算,最后将结果直接输出。
用条件编译来实现。

AC的C语言程序如下:

/* LQ0116 方格计数 */

#include <stdio.h>

typedef long long LL;

//#define DEBUG

#define N 50000LL

int main()

#ifdef DEBUG
    LL cnt = 0;
    for (LL i = 1; i <= N; i++)
        for (LL j = 1; j <= N; j++) 
            if (i * i + j * j > N * N)
                break;
            cnt++;
        
    printf("%lld\\n", cnt * 4);
#else
    printf("7853781044\\n");
#endif
    return 0;

以上是关于LQ0116 方格计数数学计算的主要内容,如果未能解决你的问题,请参考以下文章

LQ0144 方格分割DFS

LQ0106 方格填数枚举

如图,向方格纸(方格边长为a)内投掷直径为2r的硬币(2r<a),求硬币不与线条相交的概率。

标题:方格计数

2009年哈萨克斯坦国际数学奥林匹克 第二天第六题

c# 方格线路计算