`

(Problem 19)Counting Sundays

阅读更多

You are given the following information, but you may prefer to do some research for yourself.

  • 1 Jan 1900 was a Monday.
  • Thirty days has September,
    April, June and November.
    All the rest have thirty-one,
    Saving February alone,
    Which has twenty-eight, rain or shine.
    And on leap years, twenty-nine.
  • A leap year occurs on any year evenly divisible by 4, but not on a century unless it is divisible by 400.

How many Sundays fell on the first of the month during the twentieth century (1 Jan 1901 to 31 Dec 2000)?

 

题目大意:

  • 1900年1月1日是星期一。
  • 30天的月份有:9月,4月,6月,11月。
  • 此外的月份都是31天,当然2月除外。
  • 2月在闰年有29天,其他时候有28天。
  • 年份可以被4整除的时候是闰年,但是不能被400整除的世纪年(100的整数倍年)除外。

20世纪(1901年1月1日到2000年12月31日)一共有多少个星期日落在了当月的第一天?

#include <stdio.h> 
#include <stdbool.h>

const int a[2][12] = {{31,28,31,30,31,30,31,31,30,31,30,31},
				     {31,29,31,30,31,30,31,31,30,31,30,31}};


bool leapYear(int n)  //判断闰年
{
	return (((n % 4 ==0) && (n % 100 !=0)) || (n % 400 == 0));
}

bool issunday(int n) //判断某天是否是星期天
{
	return (n % 7 == 0 ? true : false);
}

void solve(void)
{
	int num, i, j, count;
	count = 0;

	i = 1901;
	num = 1;
	while(i < 2000) {

		int t = (leapYear(i) ? 1 : 0);   //判断闰年
		for(j = 0; j < 12; j++) {
			num += a[t][j];
			if(issunday(num)) count++;
		}
		i++;
	}
	printf("%d\n",count);
}

int main(void)
{
	solve();
	return 0;
}

 

Answer:
171

 

 

Completed on Mon, 18 Nov 2013, 03:38

 

分享到:
评论

相关推荐

    Counting Sundays

    Give "1 Jan 1900 was a Monday", get "How many Sundays fell on the first of the month during the twentieth century (1 Jan 1901 to 31 Dec 2000)?

    source统计工具Counting

    这就是为什么“Source统计工具Counting”能够成为开发者和项目管理者手中利器的原因。 Source统计工具Counting是一款专门设计用于分析编程源代码的实用工具。它具备多种功能,其中最核心的能力在于统计源代码中不同...

    3D people counting implementation guide

    《3D人员计数实施指南》是针对使用毫米波雷达技术进行三维人体计数的软件实现文档,由德州仪器(Texas Instruments)发布。本指南详细介绍了如何设置演示系统,以及利用SDK组件进行3D人员计数的具体步骤。...

    53958727box-counting.zip

    在IT领域,分形盒维数(Box-Counting Dimension)是研究复杂几何形状和结构的一种重要工具,尤其在图像处理、数据建模和复杂网络分析中有着广泛的应用。本项目"53958727box-counting.zip"显然是针对1D、2D、3D空间中...

    Standard Practices for Cycle Counting in Fatigue Analysis E1049

    These practices are a compilation of acceptable proce- dures for cycle-counting methods employed in fatigue analysis. This standard does not intend to recommend a particular method.

    The Pleasures of Counting 1996

    The Pleasures of Counting 1996 © Cambridge University Press 1996

    Counting.exe

    《代码行统计工具Counting.exe详解》 在软件开发过程中,了解代码的规模是至关重要的。这不仅可以评估项目的复杂性,还可以为项目管理和资源分配提供参考。Counting.exe是一款高效实用的代码行统计工具,它支持多种...

    counting 代码行数统计

    标题中的“counting 代码行数统计”指的是在软件开发过程中对源代码文件中的代码行进行计数的活动。这通常用于评估项目的工作量、跟踪开发进度或比较不同版本的代码变化。代码行数统计可以帮助开发者理解代码的复杂...

    1004. Counting Leaves (30)

    1004. Counting Leaves (30) 来自:http://blog.csdn.net/sunbaigui/article/details/8657008

    Function Point Counting Practices Manual.zip

    Function Point Counting Practices Manual 4.1.1 版本。 来自IFPUG,权威资料 The primary objectives of the IFPUG Counting Practices Manual, Release 4.1, are to • Provide a clear and detailed description...

    ICPC2023 西安区域赛 题解.pdf

    本文档提供了 ICPC2023 西安区域赛的题解,涵盖了五个题目:A - An Easy Geometry Problem、B - Counting Multisets、C - Counting Strings、D - Deep Intervals 和 E - Dominating Point。每个题目都提供了详细的...

    Counting源代码统计器

    Counting源代码统计器,对开发的代码进行统计,辅助开发者进行开发,也可以用于软件测试时对代码的统计

    differential-box--counting.rar_box counting fractal_matlab计数_差分盒

    差分盒计数法(Differential Box Counting,简称DBC)是一种通过统计不同大小的“盒子”覆盖图像中点的数量来估计分形维数的方法。分形维数是一个无量纲的数值,它描述了对象在不同尺度下的复杂性。在图像处理中,这...

    box_count.zip_box_box counting _box-counting

    Box Counting方法是一种在复杂系统和分形几何中计算维度的数学技术,它主要用于分析和理解数据集或图像的自相似性。这个压缩包“box_count.zip”包含了用于执行Box Counting算法的MATLAB代码,这有助于计算一个系统...

    Attentional Neural Fields for Crowd Counting.pdf

    论文Attentional Neural Fields for Crowd Counting,侵删

    word counting

    输出一段字串中的字符数——程序很小,第一次上传,大家多支持!

    Function Point Counting Practices Manual V4.3

    《功能点计算实践手册》V4.3是软件工程领域中一种重要的估算工具,主要用于量化软件项目的规模,以便更准确地预测开发成本、时间和资源需求。功能点分析(Function Point Analysis,FPA)是一种非度量的技术,它通过...

    Counting代码量统计工具

    统计代码量的工具 软件开发必备 简单易操作

    simple_vehicle_counting-master

    "simple_vehicle_counting-master"项目就是一个很好的实例,它利用先进的算法和技术实现对车辆的自动识别与计数。 车辆检测与计数的主要目标是实时监控交通流量,为城市交通管理、道路安全评估以及交通规划提供数据...

Global site tag (gtag.js) - Google Analytics