A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

© 刘胜寒 金牌黑马   /  2013-5-17 19:27  /  6958 人查看  /  48 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 刘胜寒 于 2013-6-5 17:12 编辑

[fly][fly]写在别处不给分的哦!![/fly][/fly]

题目链接http://bbs.itheima.com/thread-50510-1-1.html



不要使用压缩包。。。
你们要累死版主也不是这个玩法啊。。。

结贴时间为周日晚八点。。。
六点之后的所有回答一律不予考虑。。。

48 个回复

正序浏览
默默的赞一个 我现在的基础还不能做这些题啊
回复 使用道具 举报
  1. public class Test {
  2.         public static void main(String[] args) {
  3.                 Test test=new Test();
  4.                 //从控制获取数据
  5.                 Scanner in=new Scanner(System.in);
  6.                 while (true) {
  7.                         //n是一个非负数且不大于400.
  8.                         int num=in.nextInt();
  9.                         if(num<0||num>=400){
  10.                                 System.err.println("输入的数据必须是是一个非负数且不大于400的数");
  11.                                 continue;
  12.                         }
  13.                         test.print_data(num);
  14.                 }
  15.                
  16.         }
  17.         public void print_data(int year_num){
  18.                
  19.                 Calendar cale = Calendar.getInstance();
  20.                 Calendar cale2 = Calendar.getInstance();
  21.                 //0代表的是1月···
  22.                 int week_day[]=new int[7];
  23.                 //设置开始时间0表示1月,以此类推
  24.                 cale.set(1900, 0, 13);
  25.                 //设置结束时间
  26.                 cale2.set(1900+year_num, 11, 13);
  27.                 // 获取这天是周几,但要注意,周日是1,周六是7
  28.                 //每个只有一个13号  所以每次加1个月
  29.                 for (cale.get(Calendar.YEAR); cale.get(Calendar.YEAR)<=cale2.get(Calendar.YEAR);cale.add(Calendar.MONTH,1)) {
  30.                         int i=cale.get(Calendar.DAY_OF_WEEK);
  31.                         week_day[i-1]++;
  32.                 }
  33.                 String[] weeks = { "周日", "周一", "周二", "周三", "周四", "周五", "周六" };
  34.                 for (int i = 0; i < week_day.length; i++) {
  35.                         int data_num = week_day[i];
  36.                         System.out.println(weeks[i]+"的天数有:"+data_num);
  37.                 }
  38.         }
  39. }
复制代码
回复 使用道具 举报
  1. class Huangzhitong
  2. {
  3.         public static void main(String[] args)
  4.         {
  5.                 //定义变量用来记录每个星期出现在13号的次数
  6.                 int x1 = 0;
  7.                 int x2 = 0;
  8.                 int x3 = 0;
  9.                 int x4 = 0;
  10.                 int x5 = 0;
  11.                 int x6 = 0;
  12.                 int x7 = 0;
  13.                
  14.                 int first = 1;//定义一个变量记录每个月1号星期数,初始值为1900年1月1日的星期数
  15.                 int count = 0;//定义一个变量记录每个月13号星期数,初始值为0
  16.                
  17.                 for (int n=1;n<=20;n++)//控制年数
  18.                 {
  19.                         if(n% 4 != 0)//判断是否为闰年 这里得用n-1不能误用n。
  20.                         {
  21.                                 for(int a=1;a<=12;a++)//对每个月的13号和下个月1号进行循环记录
  22.                                 {
  23.                                         count = (first+12)%7;//计算每个月的13日的星期数
  24.                                        
  25.                                        
  26.                                         switch(a)//计算每个月的第一天的星期数
  27.                                         {
  28.                                         case 1 :
  29.                                         case 3 :
  30.                                         case 5 :
  31.                                         case 7:
  32.                                         case 8:
  33.                                         case 10:
  34.                                         case 12:
  35.                                                 first =(31+first)%7;
  36.                                                 break;
  37.                                         case 2:
  38.                                                 first =(28+first)%7;
  39.                                                 break;
  40.                                         case 4 :
  41.                                         case 6 :
  42.                                         case 9 :
  43.                                         case 11 :
  44.                                                 first = (30+first)%7;
  45.                                                 break;
  46.                                         }
  47.                                        
  48.                                         switch(count)//记录13日出现在每个星期的次数
  49.                                         {
  50.                                         case 1:
  51.                                                 x1++;
  52.                                                 break;
  53.                                         case 2:
  54.                                                 x2++;
  55.                                                 break;
  56.                                         case 3:
  57.                                                 x3++;
  58.                                                 break;
  59.                                         case 4:
  60.                                                 x4++;
  61.                                                 break;
  62.                                         case 5:
  63.                                                 x5++;
  64.                                                 break;
  65.                                         case 6:
  66.                                                 x6++;
  67.                                                 break;
  68.                                         case 0:
  69.                                                 x7++;
  70.                                                 break;
  71.                                         }
  72.                                 }
  73.                         }
  74.                         else
  75.                         {
  76.                                 for(int a=1;a<=12;a++)
  77.                                 {
  78.                                         count = (first+12)%7;
  79.                                        
  80.                                        
  81.                                         switch(a)
  82.                                         {
  83.                                         case 1 :
  84.                                         case 3 :
  85.                                         case 5 :
  86.                                         case 7:
  87.                                         case 8:
  88.                                         case 10:
  89.                                         case 12:
  90.                                                 first =(31+first)%7;
  91.                                                 break;
  92.                                         case 2:
  93.                                                 first =(29+first)%7;
  94.                                                 break;
  95.                                         case 4 :
  96.                                         case 6 :
  97.                                         case 9 :
  98.                                         case 11 :
  99.                                                 first = (30+first)%7;
  100.                                                 break;
  101.                                         }
  102.                                        
  103.                                         switch(count)
  104.                                         {
  105.                                         case 1:
  106.                                                 x1++;
  107.                                                 break;
  108.                                         case 2:
  109.                                                 x2++;
  110.                                                 break;
  111.                                         case 3:
  112.                                                 x3++;
  113.                                                 break;
  114.                                         case 4:
  115.                                                 x4++;
  116.                                                 break;
  117.                                         case 5:
  118.                                                 x5++;
  119.                                                 break;
  120.                                         case 6:
  121.                                                 x6++;
  122.                                                 break;
  123.                                         case 0:
  124.                                                 x7++;
  125.                                                 break;
  126.                                         }
  127.                                 }
  128.                         }
  129.                 }
  130.                
  131.                
  132.                
  133.                
  134.                 System.out.println("13日落在星期一次数"+x1);
  135.                 System.out.println("13日落在星期二次数"+x2);
  136.                 System.out.println("13日落在星期三次数"+x3);
  137.                 System.out.println("13日落在星期四次数"+x4);
  138.                 System.out.println("13日落在星期五次数"+x5);
  139.                 System.out.println("13日落在星期六次数"+x6);
  140.                 System.out.println("13日落在星期七次数"+x7);
  141.                
  142.         }
  143. }
复制代码
回复 使用道具 举报
  1. class Huangzhitong
  2. {
  3.         public static void main(String[] args)
  4.         {
  5.                 //定义变量用来记录每个星期出现在13号的次数
  6.                 int x1 = 0;
  7.                 int x2 = 0;
  8.                 int x3 = 0;
  9.                 int x4 = 0;
  10.                 int x5 = 0;
  11.                 int x6 = 0;
  12.                 int x7 = 0;
  13.                
  14.                 int first = 1;//定义一个变量记录每个月1号星期数,初始值为1900年1月1日的星期数
  15.                 int count = 0;//定义一个变量记录每个月13号星期数,初始值为0
  16.                
  17.                 for (int n=1;n<=20;n++)//控制年数
  18.                 {
  19.                         if((n-1)% 4 != 0)//判断是否为闰年 这里得用n-1不能误用n。
  20.                         {
  21.                                 for(int a=1;a<=12;a++)//对每个月的13号和下个月1号进行循环记录
  22.                                 {
  23.                                         count = (first+12)%7;//计算每个月的13日的星期数
  24.                                        
  25.                                        
  26.                                         switch(a)//计算每个月的第一天的星期数
  27.                                         {
  28.                                         case 1 :
  29.                                         case 3 :
  30.                                         case 5 :
  31.                                         case 7:
  32.                                         case 8:
  33.                                         case 10:
  34.                                         case 12:
  35.                                                 first =(31+first)%7;
  36.                                                 break;
  37.                                         case 2:
  38.                                                 first =(28+first)%7;
  39.                                                 break;
  40.                                         case 4 :
  41.                                         case 6 :
  42.                                         case 9 :
  43.                                         case 11 :
  44.                                                 first = (30+first)%7;
  45.                                                 break;
  46.                                         }
  47.                                        
  48.                                         switch(count)//记录13日出现在每个星期的次数
  49.                                         {
  50.                                         case 1:
  51.                                                 x1++;
  52.                                                 break;
  53.                                         case 2:
  54.                                                 x2++;
  55.                                                 break;
  56.                                         case 3:
  57.                                                 x3++;
  58.                                                 break;
  59.                                         case 4:
  60.                                                 x4++;
  61.                                                 break;
  62.                                         case 5:
  63.                                                 x5++;
  64.                                                 break;
  65.                                         case 6:
  66.                                                 x6++;
  67.                                                 break;
  68.                                         case 0:
  69.                                                 x7++;
  70.                                                 break;
  71.                                         }
  72.                                 }
  73.                         }
  74.                         else
  75.                         {
  76.                                 for(int a=1;a<=12;a++)
  77.                                 {
  78.                                         count = (first+12)%7;
  79.                                        
  80.                                        
  81.                                         switch(a)
  82.                                         {
  83.                                         case 1 :
  84.                                         case 3 :
  85.                                         case 5 :
  86.                                         case 7:
  87.                                         case 8:
  88.                                         case 10:
  89.                                         case 12:
  90.                                                 first =(31+first)%7;
  91.                                                 break;
  92.                                         case 2:
  93.                                                 first =(29+first)%7;
  94.                                                 break;
  95.                                         case 4 :
  96.                                         case 6 :
  97.                                         case 9 :
  98.                                         case 11 :
  99.                                                 first = (30+first)%7;
  100.                                                 break;
  101.                                         }
  102.                                        
  103.                                         switch(count)
  104.                                         {
  105.                                         case 1:
  106.                                                 x1++;
  107.                                                 break;
  108.                                         case 2:
  109.                                                 x2++;
  110.                                                 break;
  111.                                         case 3:
  112.                                                 x3++;
  113.                                                 break;
  114.                                         case 4:
  115.                                                 x4++;
  116.                                                 break;
  117.                                         case 5:
  118.                                                 x5++;
  119.                                                 break;
  120.                                         case 6:
  121.                                                 x6++;
  122.                                                 break;
  123.                                         case 0:
  124.                                                 x7++;
  125.                                                 break;
  126.                                         }
  127.                                 }
  128.                         }
  129.                 }
  130.                
  131.                
  132.                
  133.                
  134.                 System.out.println("13日落在星期一次数"+x1);
  135.                 System.out.println("13日落在星期二次数"+x2);
  136.                 System.out.println("13日落在星期三次数"+x3);
  137.                 System.out.println("13日落在星期四次数"+x4);
  138.                 System.out.println("13日落在星期五次数"+x5);
  139.                 System.out.println("13日落在星期六次数"+x6);
  140.                 System.out.println("13日落在星期七次数"+x7);
  141.                
  142.         }
  143. }
复制代码
回复 使用道具 举报
有点深度。。
回复 使用道具 举报
  1. import java.util.Calendar;
  2. import java.util.Date;
  3. import java.util.Scanner;

  4. class Demo2{
  5.         public static void main(String[] args)
  6.         {
  7.                 int year = 0;
  8.                 int month = 0;
  9.                 int day = 0;
  10.                 int[] week = new int[7];//定义数组保存13号落在一周内每天的天数
  11.                 Calendar calendar = Calendar.getInstance();//使用Calendar类的static方法getInstance()初始化一个日历对象
  12.                 //calendar.set(1900, 0, 1);//将日期设置为1900年1月1日
  13.                 Scanner input = new Scanner(System.in);
  14.                 int n = input.nextInt();
  15.                 for(year = 1900; year < 1900 + n; year++)//控制年份的变化
  16.                 {
  17.                         for(month = 0; month < 12; month++)//控制月份的变化,0表示一月,11表示十二月
  18.                         {
  19.                                 calendar.set(year, month, 13);//设置当前日期
  20.                                 int weekday = calendar.get(Calendar.DAY_OF_WEEK);//返回当前日期是一星期中的第几天,星期天为1,星期六为7
  21.                                 //System.out.println(weekday);
  22.                                 if(weekday == 1)//入为weekday1即星期天
  23.                                 {
  24.                                         week[6]++;
  25.                                 }
  26.                                 else//当weekday为2时,即星期一weekday[0]加1,为7时weekday即星期五week[5]加1
  27.                                 {
  28.                                         week[weekday - 2]++;
  29.                                 }
  30.                         }
  31.                 }
  32.                 for(int i = 0; i < 7; i++)//循环输出
  33.                 {
  34.                         System.out.print(week[i] + "\t");
  35.                 }
  36.         }
  37. }
复制代码
回复 使用道具 举报
晚了这么久,好歹做出来了还是发一下
  1. class Fri13
  2. {
  3. public static void main(String[] args)
  4.         {
  5.                 int[] result=new int[7];
  6.                 int weekday;
  7.                 for (int year=1900;year<2300;year+=1)
  8.                 {       
  9.                         int s1=365*(year-1900)-((year-1900)/4-1);
  10.                         for (int month=1;month<13;month+=1)
  11.                         {       
  12.                                 int s2=0;
  13.                                 if (year%4==0)       
  14.                                 {
  15.                                         int[] monthday={0,31,29,31,30,31,30,31,31,30,31,30,31};
  16.                                         for (int i=0;i<month-1;i+=1)
  17.                                         s2+=monthday[i];
  18.                                 }
  19.                                 else            
  20.                                 {
  21.                                         int[] monthday={0,31,28,31,30,31,30,31,31,30,31,30,31};
  22.                                         for (int i=0;i<month-1;i+=1)
  23.                                         s2+=monthday[i];
  24.                                 }
  25.                         weekday=(s1+s2+13)%7;
  26.                         result[weekday]+=1;
  27.                         }
  28.                 }
  29.                 System.out.println("从1900到2300年,13号落在每个星期数上的次数:");
  30.                 System.out.println("星期日"+"\t"+"星期一"+"\t"+"星期二"+"\t"+"星期三"+"\t"+"星期四"+"\t"+"星期五"+"\t"+"星期六");
  31.                 System.out.println(result[0]+"\t"+result[1]+"\t"+result[2]+"\t"+result[3]+"\t"+result[4]+"\t"+result[5]+"\t"+result[6]);
  32.         }
  33. }
复制代码

QQ截图20130524142707.jpg (17.08 KB, 下载次数: 0)

算的结果

算的结果

评分

参与人数 1技术分 +1 收起 理由
刘胜寒 + 1

查看全部评分

回复 使用道具 举报

周末答题

本帖最后由 student 于 2013-5-22 19:29 编辑
  1. import java.util.Calendar;
  2. import java.util.Iterator;
  3. import java.util.Map;
  4. import java.util.Set;
  5. import java.util.TreeMap;

  6. class Thirteenth {

  7.         // 查表法定义星期数组,星期日是每个星期的第一天
  8.         private static final String[] week = { "星期日", "星期一", "星期二", "星期三", "星期四",
  9.                         "星期五", "星期六" };

  10.         private String key;
  11.         private Integer value;

  12.         public void getTimes(int n) {
  13.                 // 限定n的取值范围
  14.                 if (n < 0 || n > 400) {
  15.                         System.out.println("n的值是一个非负数且不大于400的数");
  16.                         return;
  17.                 }
  18.                 // 创建TreeMap集合对象,采用面向接口的方式
  19.                 Map<String, Integer> tm = new TreeMap<String, Integer>();
  20.                 // 获取日历对象
  21.                 Calendar calendar = Calendar.getInstance();
  22.                 // 计数器
  23.                 int count = 0;
  24.                 // 变量一年的12个月份,0月份代表第一个月
  25.                 for (int i = 0; i < 12; i++) {
  26.                         calendar.set(1900 + n - 1, i, 13);
  27.                         // 获取日历对象中星期,作为成员变量week[]的下标
  28.                         int weekIndex = calendar.get(Calendar.DAY_OF_WEEK);
  29.                         // 星期作为集合的键
  30.                         key = week[weekIndex - 1];
  31.                         // 星期出现的次数作为键值
  32.                         value = tm.get(key);
  33.                         if (!(value == null))
  34.                                 count = value;
  35.                         count++;
  36.                         // 将键值对添加到集合中
  37.                         tm.put(key, count);
  38.                         // 归零,避免本次值加到他键的值上
  39.                         count = 0;
  40.                 }
  41.                 // 打印集合中的元素(键值对)
  42.                 printMap(tm, calendar);
  43.         }

  44.         // 遍历集合
  45.         public void printMap(Map<String, Integer> m, Calendar c) {
  46.                 Set<Map.Entry<String, Integer>> entrySet = m.entrySet();
  47.                 Iterator<Map.Entry<String, Integer>> it = entrySet.iterator();
  48.                 System.out.println(c.get(Calendar.YEAR) + "年的12个月中,13日出现的次数为:");
  49.                 String[] keyValue = new String[week.length];
  50.                 // 遍历集合
  51.                 while (it.hasNext()) {
  52.                         Map.Entry<String, Integer> entry = it.next();
  53.                         String key = entry.getKey();
  54.                         int value = entry.getValue();
  55.                         for (int i = 0; i < week.length; i++) {
  56.                                 if (key != week[i]) {
  57.                                         continue;
  58.                                 }
  59.                                 // 将键值对转换成字符串
  60.                                 keyValue[i] = key + "  " + value + "次";
  61.                         }
  62.                 }
  63.                 // 打印字符串
  64.                 printString(keyValue);
  65.         }

  66.         // 打印字符串
  67.         public void printString(String[] keyValue) {
  68.                 for (int i = 1; i < week.length; i++) {
  69.                         System.out.println(keyValue[i]);
  70.                 }
  71.                 System.out.println(keyValue[0]);
  72.         }
  73. }

  74. // 主函数
  75. public class Demo {
  76.         public static void main(String[] args) {

  77.                 int n = 114;
  78.                 new Thirteenth().getTimes(n);
  79.                 /*
  80.                  * 运行结果:
  81.                  *
  82.                  * 2013年的12个月中,13日出现的次数为:
  83.                  * 星期一 1次
  84.                  * 星期二 1次
  85.                  * 星期三 3次
  86.                  * 星期四 1次
  87.                  * 星期五 2次
  88.                  * 星期六 2次
  89.                  * 星期日 2次
  90.                  */
  91.         }
  92. }
复制代码

评分

参与人数 1技术分 +1 收起 理由
刘胜寒 + 1

查看全部评分

回复 使用道具 举报
求答案,谢谢
回复 使用道具 举报
时间快到了啊,我现在还在写,刚看视频第二天,全凭3年前的c基础琢磨了,不管写到什么时候一定得放上来试试
回复 使用道具 举报
本帖最后由 严露华 于 2013-5-19 17:26 编辑

请版主查看,代码如果有问题或能够在优化,请帮忙指出。谢谢
  1. import java.util.*;
  2. /*思路:
  3. * 1.使用日期类,Calendar
  4. * 2.要获取每年,每月的13号是星期几?使用循环嵌套
  5. * 3.将循环嵌套获取的值放入容器中
  6. * 4.定义一个map集合,将值放入进去
  7. *5. 取出键值对,放入一个容器中
  8. * */
  9. public class Lianxi {

  10.         public static void main(String[] args) {
  11.                
  12.                 String s = date();
  13.                 System.out.println(charCount(s));
  14.                 }
  15.         public static String date(){
  16.                 Calendar c =Calendar.getInstance();
  17.                 StringBuilder sb = new StringBuilder();   //定义一个容器,将遍历到的星期加进容器中

  18.                 String[] weeks = {
  19.                                                 "","日","一","二","三","四","五","六"
  20.                                                         };                                        //定义一个数组,获取对应的星期
  21.                 for(int i=1900;i<2300;i++){
  22.                         for(int j=0;j<=11;j++){
  23.                                 c.set(i, j, 13);
  24.                                 
  25.                                 int index = c.get(Calendar.DAY_OF_WEEK);
  26.                                 
  27.                                 sb.append(weeks[index]+"");//将获取的值加进容器中
  28.                                 
  29.                         }
  30.                         
  31.                         
  32.                         }
  33.                 return sb.toString();
  34.                
  35.         }
  36.         public static String charCount(String s)
  37.         {
  38.                 char[] chs =s.toCharArray();//转化为字符数组
  39.                 TreeMap<Character,Integer> tm = new TreeMap<Character,Integer>();//定义一个集合容器

  40.                
  41.                 int count = 0;
  42.                 for(int x=0; x<chs.length; x++)
  43.                 {
  44.                

  45.                         Integer value = tm.get(chs[x]);

  46.                         
  47.                         if(value!=null)                        //值不等于空,则开始对对应的日期进行计数
  48.                                 count = value;
  49.                         count++;
  50.                         tm.put(chs[x],count);//将元素放入集合中

  51.                         count = 0;                //计数器清零


  52.                 }

  53.                 StringBuilder sb1 = new StringBuilder();//在定义一个容器,见迭代去除的值放入容器中

  54.                 Set<Map.Entry<Character,Integer>> entrySet = tm.entrySet();
  55.                 Iterator<Map.Entry<Character,Integer>>  it = entrySet.iterator();

  56.                 while(it.hasNext())
  57.                 {
  58.                         Map.Entry<Character,Integer> me = it.next();
  59.                         Character ch = me.getKey();
  60.                         Integer value = me.getValue();
  61.                         sb1.append(ch+"("+value+")");
  62.                 }



  63.                 return sb1.toString();
  64.         }
  65.         
  66. }
复制代码

评分

参与人数 1技术分 +1 收起 理由
刘胜寒 + 1

查看全部评分

回复 使用道具 举报
原题中给的数据貌似有问题吧,星期一怎么是36天?
  1. package cn.itheima.two;

  2. import java.util.Calendar;
  3. import java.util.Scanner;

  4. /**
  5. * 用Calendar类来做貌似挺简单的吧。。。
  6. */
  7. public class Test13 {
  8.         public static void main(String[] args) {
  9.                 System.out.println("请输入一个不大于400的非负数:");
  10.                 Scanner in = new Scanner(System.in);
  11.                 int num = in.nextInt();
  12.                 if (num < 0 || num > 400) {
  13.                         System.out.println("请输入正确的数字");
  14.                 } else {
  15.                         test2(num);
  16.                 }
  17.         }
  18.         public static void test2(int n) {
  19.                 //在日历中,第1天是星期日,第2天到第7天依次为星期一到星期六
  20.                 String[] weeks = { "", "星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六", };
  21.                 // 创建一个Calendar对象
  22.                 Calendar cal = Calendar.getInstance();
  23.                 // 定义一个数组来存放星期一天到星期天的次数
  24.                 int[] counts = new int[7];
  25.                 for (int i = 0; i < n; i++) {
  26.                         for (int j = 0; j < 12; j++) {
  27.                                 // 设定日期
  28.                                 cal.set(1900 + i, j, 13);
  29.                                 // 获取这一天是一周的第多少天
  30.                                 int count = cal.get(Calendar.DAY_OF_WEEK);
  31.                                 // 判断是星期几并把天数加1
  32.                                 String str = weeks[count];
  33.                                 if (str.equals("星期日")) {
  34.                                         counts[6]++;
  35.                                 } else if (str.equals("星期一")) {
  36.                                         counts[0]++;
  37.                                 } else if (str.equals("星期二")) {
  38.                                         counts[1]++;
  39.                                 } else if (str.equals("星期三")) {
  40.                                         counts[2]++;
  41.                                 } else if (str.equals("星期四")) {
  42.                                         counts[3]++;
  43.                                 } else if (str.equals("星期五")) {
  44.                                         counts[4]++;
  45.                                 } else if (str.equals("星期六")) {
  46.                                         counts[5]++;
  47.                                 }
  48.                         }
  49.                 }
  50.                 System.out.println("星期一:" + counts[0] + ",星期二:" + counts[1] + ",星期三:"
  51.                                 + counts[2] + ",星期四:" + counts[3] + ",星期五:" + counts[4]
  52.                                 + ",星期六:" + counts[5] + ",星期日:" + counts[6]);

  53.         }
  54. }
复制代码

评分

参与人数 1技术分 +2 收起 理由
刘胜寒 + 2

查看全部评分

回复 使用道具 举报
逸盏清茶 发表于 2013-5-18 23:03
麻烦版主阅下啊  。

额。。。。论坛不是只能传压缩包的么 。。。
回复 使用道具 举报
joker_chan 发表于 2013-5-17 20:31
额不用压缩包用什么额。

晕 。是上次的。。。。。额不好意思。我去看看这次的。
回复 使用道具 举报
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Calendar;
public class Main {
        static Calendar cal=Calendar.getInstance();
        static int[] res=new int[7];//结果存放数组,res[0]为周日
        public static void main(String[] args) {
                int n=0;
                //从1900年1月13日开始计数
                cal.set(Calendar.YEAR, 1900);
                cal.set(Calendar.MONTH, 0);
                cal.set(Calendar.DAY_OF_MONTH, 13);
                try {
                        System.out.println("请输入年数..");
                        //录入键盘,获取年数
                        BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
                        n=new Integer(br.readLine());
                        getRes(n);
                } catch (NumberFormatException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                } catch (IOException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                }
               
                }
        /*
         * 获取并打印结果
         */
        public static void getRes(int n){
                //截止日期19**
                if((n<400)&&(n>0)){
                        while(!(((cal.get(Calendar.YEAR)==(1900+n-1))&&//截止日期****年12月31日
                                    (cal.get(Calendar.MONTH)==11)&&
                                    (cal.get(Calendar.DAY_OF_MONTH)==13)))){       
                        res[cal.get(Calendar.DAY_OF_WEEK)-1]++;
                        cal.add(Calendar.MONTH, 1);//月份加一
                   }
                        res[cal.get(Calendar.DAY_OF_WEEK)-1]++;//最后一天的weekday判断
                        sop(res);
                }else{
                        System.out.println("年数1-400");
                }
               
        }
        public static void sop(int[] a){
                System.out.println("周日天数"+a[0]);
                System.out.println("周一天数"+a[1]);
                System.out.println("周二天数"+a[2]);
                System.out.println("周三天数"+a[3]);
                System.out.println("周四天数"+a[4]);
                System.out.println("周五天数"+a[5]);
                System.out.println("周六天数"+a[6]);       
        }
}

评分

参与人数 1技术分 +2 收起 理由
刘胜寒 + 2

查看全部评分

回复 使用道具 举报
import java.util.Calendar;
import java.util.Scanner;

public class Test5 {
        public static void main(String[] args) {
                //从键盘输入n年
                Scanner sc = new Scanner(System.in);
                int n = sc.nextInt();
                //判断n的范围
                if(n >= 0 && n <= 400) {
                        Calendar c = Calendar.getInstance();
                        //将时间设为1900年1月13日
                        c.set(1900, 0 , 13);
                        //定义一个记数的动态初始化数组, 数组长度为7
                        int[] counts = new int[7];
                        //循环条件,只要年份不大于自定义的1900+n-1就循环
                        while(c.get(Calendar.YEAR) <= 1900 + n - 1) {
                                //由于数组是从索引0开始的,而通过Calendar.DAY_OF_WEEK获取的星期是从1开始的,所以 - 1,星期日为一个星期的第一天
                                //循环后就将得到新得counts数组
                                counts[c.get(Calendar.DAY_OF_WEEK) - 1]++;
                                //每次循环增加一个月,既第一次是1900年1月13日,增加一个月就是1900年2月13日
                                c.add(Calendar.MONTH, 1);
                        }
                        //输出13号在周一到周末出现的次数
                        System.out.println(counts[1]+" "+counts[2]+" "+counts[3]+" "+counts[4]+" "+counts[5]+" "+counts[6]+" "+counts[0]);
                }else           //当不在范围内时输出
                        System.out.println("您输入的数值有误,不在范围内!");
        }

}
//版主, 我确认了很多次, 你的样例输出有误, 而且你题目的顺序是从周1到周日.

评分

参与人数 1技术分 +2 收起 理由
刘胜寒 + 2

查看全部评分

回复 使用道具 举报

RE: 周末答题有奖之二------答题贴

怎么没有版主可见选项啊
回复 使用道具 举报

是在这里答题吗?
回复 使用道具 举报

是在这里答题吗?
回复 使用道具 举报
123下一页
您需要登录后才可以回帖 登录 | 加入黑马