标题:求大神帮我看看,运行之后是没有结果的呢!!
取消只看楼主
llt2013
Rank: 2
等 级:论坛游民
帖 子:15
专家分:20
注 册:2013-12-28
结帖率:50%
已结贴  问题点数:4 回复次数:3 
求大神帮我看看,运行之后是没有结果的呢!!
标题: 世纪末的星期


    曾有邪教称1999年12月31日是世界末日。当然该谣言已经不攻自破。

    还有人称今后的某个世纪末的12月31日,如果是星期一则会....

    有趣的是,任何一个世纪末的年份的12月31日都不可能是星期一!!

    于是,“谣言制造商”又修改为星期日......

    1999年的12月31日是星期五,请问:未来哪一个离我们最近的一个世纪末年(即xx99年)的12月31日正好是星期天(即星期日)?

    请回答该年份(只写这个4位整数,不要写12月31等多余信息)

import java.awt.Label;


public class T2 {
    public static void main(String [] args){
        String [] a=new String[7];
        int x;
        a[0]="星期六";
        a[1]="星期天";
        a[2]="星期一";
        a[3]="星期二";
        a[4]="星期三";
        a[5]="星期四";
        a[6]="星期五";
        Label:
        for (int i = 2000; i <= 9999;) {//已知1999,12,31是星期五那2000,1,1就是星期六了
            if (i%4==0&&i%100!=0||i%400==0) {//判断那年是闰年还是平年
                x=366%7;
                i++;
                for (int j = 0; j < a.length; j++) {//每次a【0】是那年一月一的星期
                    a[j]=a[(x+j)%7];
                }
                if (i/10%10==0&&i%10==0&&a[0].equals("星期一")) {//如果**00年是星期一,那**99年的年尾就是星期日了,
                    System.out.println(i);
                    break Label;
                }
            }
            else {
                x=365%7;
                i++;
                for (int j = 0; j < a.length; j++) {
                    a[j]=a[(x+j)%7];
                }
                if (i/10%10==0&&i%10==0&&a[0].equals("星期一")) {
                    System.out.println(i);
                    break Label;
                }
            
        }
    }
    }
}
运行之后是没有结果的!!
搜索更多相关主题的帖子: 世界末日 public import 制造商 世纪 
2014-11-30 17:27
llt2013
Rank: 2
等 级:论坛游民
帖 子:15
专家分:20
注 册:2013-12-28
得分:0 
回复 2 楼 小码农
谢谢你肯回复我,真心感谢
当i=2000时,a【0】已经等于星期一了,但此时的i++,让它已经变成2001年了,就是2001年1月1是星期一了,我用了for语句就是不断在更新每年一月一的星期,因为天数不一样闰年和平年还是有差别的吧,你可以大概写些代码给我吗?拜托拜托是菜鸟呢
2014-12-01 20:45
llt2013
Rank: 2
等 级:论坛游民
帖 子:15
专家分:20
注 册:2013-12-28
得分:0 
回复 4 楼 hhwz
崇拜啊,大神,我也去看了很多人写的,我就是郁闷我这样的算法不对吗?我的到底错在哪里了?
2014-12-02 13:32
llt2013
Rank: 2
等 级:论坛游民
帖 子:15
专家分:20
注 册:2013-12-28
得分:0 
回复 6 楼 hhwz
我的思路,a[0]是表明****年1月1是星期几,我通过for语句不断更新每年1月一的星期,然后因为**99年12月31日是星期日,那我就找**00年一月一是星期一的,此时的a[0]若是星期一就代表了**99年是星期日了,这样思路错了吗?
2014-12-02 20:35



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-439392-1-1.html




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

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