日期:2014-05-17 浏览次数:21478 次
using System;
using System.Collections.Generic;
using System.Text;
namespace Reclosing
{
    class Program
    {
        static void Main(string[] args)
        {
            for (int h = 0; h < 120; h += 5)
            {
                for (int m = 0; m < 60; m++)
                {
                    for (int s = 0; s < 60; s++)
                    {
                        if (((h >= 60) ? h - 60 : h) == m && m == s)
                            Console.WriteLine(h / 5 + ":" + m + ":" + s);
                    }
                }
            }
            Console.Read();
        }
    }
}
------解决方案--------------------
http://lakeinmoon.bokee.com/6159214.html
------解决方案--------------------
http://www.simpleness.com.cn/view/23/1.aspx
------解决方案--------------------
List<double> Timeslap(double wf, double ws)  
       {  
           var n = (int)(24 * 3600 * wf / 360);  
           var times = new List<double>(n);  
           for (int k = 0; k < n - 1; k++)  
           {  
               var t = 360 * (k - (int)(k * ws / wf)) / (wf - ws);  
               if (times.Count == 0 || times[times.Count - 1] != t) times.Add(t);  
           }  
           return times;  
       }
时针和分针相遇22次
------解决方案--------------------
一天指的是 24小时吧?
应该是23次吧
------解决方案--------------------
这是一个推理题目
设计小时为A 分钟为B 他们都在围着圈跑 a 跑一圈(12小时) B 要跑12圈  
则一个起跑点开跑,A跑一圈 b将追上a 11次又回到原点 A 再跑一圈为上一次的重复  
算上起点重合一共12次
由于A B 是匀速的,则B 追上A 的位置必然均分在这个圈上 就是将这个圈12等分
分钟和秒 B 为分钟 C 为秒 我们发现 同样 B 跑一圈(1小时) C 同样要跑60圈
则一个起跑点开跑,B跑一圈 c将追上B 59次又回到原点 A 再跑一圈为上一次的重复  
算上起点重合一共60次
由于B C 是匀速的,则C 追上A 的位置必然均分在这个圈上 就是将这个圈60等分
12等分与60等分一个圈 起点相同必须重合12下
则一天有24次重合
由于 00:00:00做为一天的开始 那么24:00:00就不能做为一天的结束,只能做为下一天的开始
那么一共23次
------解决方案--------------------
这要看什么叫做“重合”?
我写的程序:
using System;
using System.Linq;
namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            int 精度 = 120;
            int i = 0;
            (from sec in Enumerable.Range(0, 24 * 60 * 60 - 1)
             let harc = (sec / 12 / 3600.0 - (int)(sec / 12 / 3600.0)) * 精度
             let marc = (sec / 3600.0 - (int)(sec / 3600.0)) * 精度
             where Math.Abs(harc - marc) <= 1
             let sarc = (sec / 60.0 - (int)(sec / 60.0)) * 精度
             where Math.Abs(marc - sarc) <= 1
             select new TimeSpan(0, 0, sec))
             .ToList()
             .ForEach(t => { Console.WriteLine("{0}\t{1}", ++i, t); });
            Console.ReadKey();
        }
    }
}
------解决方案--------------------
算起起点24次重合,终点不算,是第二天的起点。
思路就是 1天24小时,从起点开始,每过1小时(不到2小时),分钟与时钟重叠一次(瞬间重叠也算)。
这样 (0+1)×24 = 24 次。
如果要求只计算在某个刻点上的重叠,那么justfortemp的第二个答案计算方法。不过得考虑起点,这样就是2次重叠。即0点和12点。
------解决方案--------------------
只有两次就是12点和0点的时候
------解决方案--------------------
你们只讨论怎么分析,正确答案到底是多少?22次?这个答案对不?
想得出合理的分析方法我觉得首先得明确的就是正确答案!