刚看的几道题目,做个记录

题目1: 输入年月日,输出星期几?

题目2:输入两个数,输出最大公约数与最小公倍数。

 

问题1算法描述:

蔡勒(Zeller)公式:
w=y+[y/4]+[c/4]-2c+[26(m+1)/10]+d-1
蔡勒公式中的符号含义如下:
    w:星期;
    c:世纪;
    y:年(两位数);
    m:月(m大于等于3,小于等于14,即在蔡勒公式中,
        某年的1、2月要看作上一年的13、14月来计算,
        比如2003年1月1日要看作2002年的13月1日来计算);
    d:日;
    []代表取整,即只要整数部分。
    (C是世纪数,y是年份后两位,M是月份,d是日数。1月和2月要按上一年的13月和14月来算,
    这时C和y均按上一年取值。)
    算出来的W除以7,余数是几就是星期几。如果余数是0,则为星期日。

问题2算法描述:

利用辗转法(欧几里得算法)求最大公约数 greatest common divisor (gcd)
前提条件a>b
1. a ÷ b,令r为所得余数(0≤r<b)
若 r = 0,算法结束;b 即为答案。
2. 互换:置 a←b,b←r,并返回第一步。
在完成上步后可以利用如下公式来求最小公倍数  least common multiple (lcm)
lcm = a*b/gcd

转载于:https://my.oschina.net/stream/blog/29133

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值