发现吨[]阵列中的坂本的算法找到周的天 [英] Finding t[] array in Sakamoto's algorithm to find the day of week

查看:156
本文介绍了发现吨[]阵列中的坂本的算法找到周的天的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想知道如何找到如何计算的 T [] 数组这个算法?

  INT陶氏(INT Y,INT男,INT D)
{

   静态INT吨[] = {0,3,2,5,0,3,5,1,4,6,2,4};

   Ÿ -  = M< 3;

   收益率(Y + Y / 4  -  Y / 100 + Y / 400 + T [M-1] + D)%7;

}
 

解决方案

您可以使用 code以下产生所需的阵列

 的#include< stdio.h中>

诠释的主要(无效){
    INT改编[] = {31,28,31,30,31,30,31,31,30,31,30,31};
    INT totalDaysInThisYear = -1,米; / *奇偶将使totalDaysInThisYear = 0 * /
    为(M = 1; M&其中; = 12; ++米){
        const int的奇偶性=(M< 3);
        的printf(%D \ N(totalDaysInThisYear +奇偶校验)%7);
        totalDaysInThisYear + = ARR [M  -  1];
    }
    返回0;
}
 

I wanna know how to find how to calculate the values of t[] array in this algorithm?

int dow(int y, int m, int d)        
{        

   static int t[] = {0, 3, 2, 5, 0, 3, 5, 1, 4, 6, 2, 4};        

   y -= m < 3;        

   return (y + y/4 - y/100 + y/400 + t[m-1] + d) % 7;        

}

解决方案

You can use code below to generate the required array

#include <stdio.h>

int main(void) {
    int arr[] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
    int totalDaysInThisYear = -1, m;  /* Parity would make totalDaysInThisYear = 0 */
    for(m = 1; m <= 12; ++m) {
        const int parity = (m < 3);
        printf("%d\n", (totalDaysInThisYear + parity) % 7);
        totalDaysInThisYear+= arr[m - 1];
    }
    return 0;
}

这篇关于发现吨[]阵列中的坂本的算法找到周的天的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆