博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
POJ NOI MATH-7831 计算星期几
阅读量:6885 次
发布时间:2019-06-27

本文共 957 字,大约阅读时间需要 3 分钟。

问题链接
总时间限制:
1000ms
内存限制:
65536kB
描述

假设今天是星期日,那么过ab天之后是星期几?

输入
两个正整数a,b,中间用单个空格隔开。0 < a <= 100, 0 < b <= 10000。
输出
一个字符串,代表过ab​天之后是星期几。
其中,Monday是星期一,Tuesday是星期二,Wednesday是星期三,Thursday是星期四,Friday是星期五,Saturday是星期六,Sunday是星期日。
样例输入
3 2000
样例输出
Tuesday
来源
《奥数典型题举一反三(小学六年级)》 (ISBN 978-7-5445-2883-2) 模拟试题二 第16题


问题分析

  计算ab天是困难的,因为数会很大。好在每周是7天,所以可以使用快速模幂运算来解决。

程序说明

  (略)。


AC的C++语言程序:

#include 
#include
using namespace std;const int DAYS = 7;string days[] = {"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"};// 快速模幂函数int powermod(int a, int n, int m){ int res = 1L; while(n) { if(n & 1L) { res *= a; res %= m; } a *= a; a %= m; n >>= 1; } return res;}int main(){ int a, b, start = 0; cin >> a >> b; cout << days[(start + powermod(a, b, DAYS)) % DAYS] << endl; return 0;}

转载于:https://www.cnblogs.com/tigerisland/p/7563971.html

你可能感兴趣的文章
wow 我的书单
查看>>
文件上传+截图+预览升级版-我们到底能走多远系列(23)
查看>>
C++ ORM - fg100emil的专栏 - 博客频道 - CSDN.NET
查看>>
html5之Canvas绘图工具基础介绍
查看>>
CSS:当鼠标移动到表格的某一行时改变其背景颜色
查看>>
在OEL5上安装配置Oracle Gird Control 10.2.0.5
查看>>
EXIT_SUCCESS_百度百科
查看>>
[转]C# 4.0 新特性
查看>>
HDU-4536 XCOM Enemy Unknown 枚举
查看>>
HDU 湫秋系列故事——安排座位 组和DP
查看>>
该不该让Google收录WordPress的目录页和标签页?
查看>>
Hypertable 0.9.7.3 发布,分布式数据库
查看>>
【leetcode】Best Time to Buy and Sell Stock
查看>>
JS判断浏览器类型
查看>>
Windows Server 2008 R2之五操作主控的管理
查看>>
【教程】ubuntu下配置nvc详细教程
查看>>
SharePoint 2010 文档管理之过期归档工具
查看>>
北京设计模式学习组bjdp.org第7次活动(2013.08.04)回顾会纪要
查看>>
SQL 必知必会·笔记<8>分组数据
查看>>
set
查看>>