| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 6102 人关注过本帖
标题:关于黑色星期5的思路
只看楼主 加入收藏
不同认为
Rank: 1
等 级:新手上路
帖 子:93
专家分:3
注 册:2015-11-25
结帖率:57.14%
收藏
已结贴  问题点数:20 回复次数:22 
关于黑色星期5的思路
算法训练 黑色星期五
问题描述
  有些西方人比较迷信,如果某个月的13号正好是星期五,他们就会觉得不太吉利,用古人的说法,就是“诸事不宜”。请你编写一个程序,统计出在某个特定的年份中,出现了多少次既是13号又是星期五的情形,以帮助你的迷信朋友解决难题。 输入格式:输入只有一行,即某个特定的年份(大于或等于1998年)。
  输出格式:输出只有一行,即在这一年中,出现了多少次既是13号又是星期五的情形。
输入输出样例
样例输入
1998
样例输出
3
这题的思路是什么样的 求出总天数后要怎么判断每个月的13号是不是周五   网上有说把天数对7求余的 那是什么意思  求余出来的是一共有几个星期吧
搜索更多相关主题的帖子: 黑色星期五 西方人 吉利 朋友 
2016-01-27 14:05
beyondyf
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:103
帖 子:3282
专家分:12654
注 册:2008-1-21
收藏
得分:0 
求余,不是求商。“求余出来的是一共有几个星期吧”,思维混乱。

首先你需要一个基准。比如公元元年1月1日是星期一。

第二你需要会计算一个给定日期到基准日期的天数。

之后就是求余来算该天是星期几了。

重剑无锋,大巧不工
2016-01-27 16:02
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:0 
泰勒公式

DO IT YOURSELF !
2016-01-27 16:21
beyondyf
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:103
帖 子:3282
专家分:12654
注 册:2008-1-21
收藏
得分:0 
回复 3楼 wp231957
“泰勒公式”?

重剑无锋,大巧不工
2016-01-27 16:23
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:0 
回复 4楼 beyondyf
算星期几的啊  剩下的问题就是循环13了

DO IT YOURSELF !
2016-01-27 16:24
beyondyf
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:103
帖 子:3282
专家分:12654
注 册:2008-1-21
收藏
得分:0 
回复 5楼 wp231957
孤陋寡闻了,我还当泰勒级数的公式呢。刚给一个姑娘写了计算一年内日期差的例子,在它的基础上再加上之前所有年的天数来算出总天数,这是我的算法。

泰勒公式什么样?


重剑无锋,大巧不工
2016-01-27 16:34
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:0 
回复 6楼 beyondyf
程序代码:
//利用泰勒公式计算星期几
//w=y+[y/4]+[c/4]-2c+[26(m+1)/10]+d-1 
int getweek(int year,int month,int day)
{
    int w;    //星期
    int c;    //世纪-1 YYYY的头两位
    int y;    //年份   YYYY的后两位
    int m;    //月份 >=3 1月 2月看成上年的13月 14月
    int d=day;    //
    if(month>=3) 
    {
        c=year / 100;
        y=year % 100;
        m=month;
    }
    else
    {
        m=month+12;
        y=(year-1) % 100;
        c=(year-1) / 100;
    }
    w=y+y/4+c/4-2*c+(26*(m+1))/10+d-1;
    w=(w+700) %7;
    return w;
}

DO IT YOURSELF !
2016-01-27 16:36
拉链
Rank: 7Rank: 7Rank: 7
等 级:黑侠
帖 子:107
专家分:534
注 册:2016-1-22
收藏
得分:5 
百度了下,人家叫蔡勒公式。
http://blog.
有详细代码。
2016-01-27 16:47
beyondyf
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:103
帖 子:3282
专家分:12654
注 册:2008-1-21
收藏
得分:0 
看着眼熟,貌似以前见过。挺简洁的。w=(w+700) %7;没用,直接w %= 7就好。

我习惯了这么算 y * 365 + y / 4 - y / 100 + y / 400 + days_in_year

其中y是当前年减一。

重剑无锋,大巧不工
2016-01-27 16:48
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:0 
回复 8楼 拉链
管它什么勒呢  嘿嘿

DO IT YOURSELF !
2016-01-27 16:54
快速回复:关于黑色星期5的思路
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016455 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved