• CCF201509-Python题解


    数列分段

    原题链接:http://118.190.20.162/view.page?gpid=T32

    试题编号: 201509-1
    试题名称: 数列分段
    时间限制: 1.0s
    内存限制: 256.0MB
    问题描述:
    问题描述
      给定一个整数数列,数列中连续相同的最长整数序列算成一段,问数列中共有多少段?
    输入格式
      输入的第一行包含一个整数n,表示数列中整数的个数。
      第二行包含n个整数a1a2, …, an,表示给定的数列,相邻的整数之间用一个空格分隔。
    输出格式
      输出一个整数,表示给定的数列有多个段。
    样例输入
    8
    8 8 8 0 12 12 8 0
    样例输出
    5
    样例说明
      8 8 8是第一段,0是第二段,12 12是第三段,倒数第二个整数8是第四段,最后一个0是第五段。
    评测用例规模与约定
      1 ≤ n ≤ 1000,0 ≤ ai ≤ 1000。

    我感觉这道题出题语言不严谨,都说“最”了,`888`和`8`竟然都是`最`

    连续相同+单个=最终分段数

     1 from sys import stdin
     2 
     3 n=int(stdin.readline().strip())
     4 arr=list(map(int, stdin.readline().strip().split()))
     5 
     6 summ=1
     7 tmp=arr[0]
     8 for i in range(1,n):
     9     if arr[i]==tmp:
    10         continue
    11     else:
    12         tmp=arr[i]
    13         summ+=1
    14 print(summ)         

    日期计算

    原题链接:http://118.190.20.162/view.page?gpid=T31

    试题编号: 201509-2
    试题名称: 日期计算
    时间限制: 1.0s
    内存限制: 256.0MB
    问题描述:
    问题描述
      给定一个年份y和一个整数d,问这一年的第d天是几月几日?
      注意闰年的2月有29天。满足下面条件之一的是闰年:
      1) 年份是4的整数倍,而且不是100的整数倍;
      2) 年份是400的整数倍。
    输入格式
      输入的第一行包含一个整数y,表示年份,年份在1900到2015之间(包含1900和2015)。
      输入的第二行包含一个整数dd在1至365之间。
    输出格式
      输出两行,每行一个整数,分别表示答案的月份和日期。
    样例输入
    2015
    80
    样例输出
    3
    21
    样例输入
    2000
    40
    样例输出
    2
    9

    模拟整个过程,第一种90第二种100

    90分(小丑竟是我自己,忘记break一个循环)

     1 y=int(input())
     2 d=int(input())
     3 mon=[31,28,31,30,31,30,31,31,30,31,30,31]
     4 if (y%4==0 and y%100!=0) or y%400==0:
     5     mon[1]=29
     6 
     7 month=0
     8 day=0
     9 flag=1
    10 while(flag):
    11     tmp=1
    12     for m in mon:
    13         if m-d<0:
    14             d-=m
    15             tmp+=1
    16         elif m-d>=0:
    17             month=tmp
    18             day=d
    19             flag=0
    20             # break
    21 
    22 
    23 print(month)
    24 print(day)
    View Code

    100分

     1 y=int(input())
     2 days=int(input())
     3 
     4 mon=[31,28,31,30,31,30,31,31,30,31,30,31]
     5 if (y%4==0 and y%100!=0)or(y%400==0):
     6     mon[1]=29
     7 
     8 m=0
     9 d=0
    10 i=0
    11 for m in mon:
    12     i+=1
    13     if days>m:
    14         days-=m
    15     else:
    16         m=i
    17         d=days
    18         break
    19         
    20 print(m)
    21 print(d)
  • 相关阅读:
    Ruby on rails开发从头来(windows)(二十七) 测试驱动开发
    数据库设计14技巧
    [原]DataReader 处理多个结果集—NextResult的用法
    MsSQL的字段类型
    在C#中把两个DataTable连接起来,相当于Sql的Inner Join方法
    征集佳句SQL导入导出大全
    [转贴]Hello NHibernate
    [转]数据库开发21条军规
    ASP.NET 中的正则表达式
    经典推荐—.NET相关最好东东(全球最新评价)
  • 原文地址:https://www.cnblogs.com/z-712/p/14454817.html
Copyright © 2020-2023  润新知