• 2010有道难题练习赛2


     

    1       A:7无关的数

    时间限制:

    1000ms

    内存限制:

    65536kB

    描述

    一个正整数,如果它能被7整除,或者它的十进制表示法中某个位数上的数字为7,则称其为与7相关的数.现求所有小于等于n(n<100)的与7无关的正整数的平方和.

    输入

    输入为一行,正整数n,(n<100)

    输出

    输出小于等于n的与7无关的正整数的平方和

    样例输入

    21

    样例输出

    2336
     
     

    #include <stdio.h>

    bool ok(int n)

    {

           if(n%7==0)

                  return true;

           for(;n;n/=10)

           {

                  if(n%10==7)

                         return true;

           }

           return false;

    }

    int main(int argc, char *argv[])

    {

           int n;

           long long sum=0;

           scanf("%d", &n);

           for(int i=1; i<=n;i++)

           {

                  if(!ok(i))

                         sum += i*i;

           }

           printf("%lld",sum);

           return 0;

    }

     

    2       B:unix纪元

    时间限制:

    1000ms

    内存限制:

    65536kB

    描述

    在著名的unix系统中,使用了一种简洁高效的时间表示方法,即:
    将1970年1月1日0点作为“unix纪元”的原点,从1970年1月1日开始经过的秒数存储为一个32位整数

    请编写一个程序,帮助把一个unix时间辍,转换成形如"YYYY-mm-dd HH:ii:ss"的格式,其中的字母分别代表

    YYYY

    4 位数字完整表示的年份

    mm

    数字表示的月份,有前导零的 2 位数字

    dd

    月份中的第几天,有前导零的2位数字

    HH

    小时,24 小时格式,有前导零

    ii

    有前导零的分钟数

    ss

    秒数,有前导零

    输入

    输入数据有若干行,每行包含一个整数t,(0<=t<2^31)

    输出

    对每一行输入数据,输出一行,为形如“YYYY-mm-dd HH:ii:ss”格式的时间

    样例输入

    10

    1234567890

    样例输出

    1970-01-01 00:00:10

    2009-02-13 23:31:30

    #include <stdio.h>

    #define time_t   long

    #define EPOCH_YR   1970

    #define FIRSTDAYOF(timp)         (((timp)->tm_wday - (timp)->tm_yday + 420) % 7)

    #define FIRSTSUNDAY(timp)      (((timp)->tm_yday - (timp)->tm_wday + 420) % 7)

    #define LEAPYEAR(year)             (!((year) % 4) && (((year) % 100) || !((year) % 400)))

    #define SECS_DAY   (24L * 60L * 60L)

    #define TIME_MAX   ULONG_MAX

    #define YEAR0   1900

    #define YEARSIZE(year)      (LEAPYEAR(year) ? 366 : 365)

     struct tm {

       int tm_sec;                   /* seconds after the minute [0, 59] */

       int tm_min;                   /* minutes after the hour [0, 59] */

       int tm_hour;                  /* hours since midnight [0, 23] */

       int tm_mday;                  /* day of the month [1, 31] */

       int tm_mon;                   /* months since January [0, 11] */

       int tm_year;                  /* years since 1900 */

       int tm_wday;                  /* days since Sunday [0, 6] */

       int tm_yday;                  /* days since January 1 [0, 365] */

       int tm_isdst;                 /* Daylight Saving Time flag */

     };

     const int _ytab[2][12] = {

                     { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 },

                     { 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 }

             };

     struct tm

     gmtime( const time_t *timer)

     {

             struct tm br_time;

             register struct tm *timep = &br_time;

             time_t time = *timer;

             register unsigned long dayclock, dayno;

             int year = EPOCH_YR;

             dayclock = (unsigned long)time % SECS_DAY;

             dayno = (unsigned long)time / SECS_DAY;

             timep->tm_sec = dayclock % 60;

             timep->tm_min = (dayclock % 3600) / 60;

             timep->tm_hour = dayclock / 3600;

             timep->tm_wday = (dayno + 4) % 7;       /* day 0 was a thursday */

             while (dayno >= YEARSIZE(year)) {

                     dayno -= YEARSIZE(year);

                     year++;

             }

             timep->tm_year = year - YEAR0;

             timep->tm_yday = dayno;

             timep->tm_mon = 0;

             while (dayno >= _ytab[LEAPYEAR(year)][timep->tm_mon]) {

                     dayno -= _ytab[LEAPYEAR(year)][timep->tm_mon];

                     timep->tm_mon++;

             }

             timep->tm_mday = dayno + 1;

             timep->tm_isdst = 0;

             return br_time;

     }

    int main(int argc, char *argv[])

    {

           long t;

           while(scanf("%d",&t))

           {

                  time_t tm_t=t;

                  struct tm tm_ = gmtime(&tm_t);

                  printf("%02d-%02d-%02d %02d:%02d:%02d\n",1900+tm_.tm_year, 1+tm_.tm_mon,tm_.tm_mday,

                          tm_.tm_hour,tm_.tm_min,tm_.tm_sec);

           }

           return 0;

    }

    3       C:和数

    时间限制:

    1000ms

    内存限制:

    65536kB

    描述

    给定一个整数序列,判断其中有多少个数,等于数列中其他两个数的和。 比如,对于数列1 2 3 4, 这个问题的答案就是2, 因为3 = 2 + 1, 4 = 1 + 3

    输入

    第一行是一个整数T,表示一共有多少组数据。 1<= T <= 100
    接下来的每组数据共两行,第一行是数列中数的个数n ( 1 <= n <= 100),第二行是由n个整数组成的数列。

    输出

    对于每组数据,输出一个整数(占一行),就是数列中等于其他两个数之和的数的个数。

    样例输入

    2
    4
    1 2 3 4
    5
    3 5 7 9 10

    样例输出

    2
    1

    #include <stdio.h>

    int n;

    long data[100];

    int GetNum()

    {

           int num=0;

          

           for(int k=0; k<n; k++)

           {

                  for(int i=0; i<n;i++)

                  {

                         if(k==i)

                                continue;

                         for(int j=i+1;j<n;j++)

                         {

                                if(k==j)

                                       continue;

                                if( data[k]==data[i]+data[j] )

                                       goto Find;

                         }

                  }

                  continue;

    Find:

                  num++;

           }

           return num;

    }

    int main(int argc, char *argv[])

    {

           int T;

          

           scanf("%d", &T);

           while(T--)

           {

                  scanf("%d", &n);

                  for(int i=0; i<n;i++)

                         scanf("%d", &data[i]);

                  //initSet();

                  printf("%d\n",GetNum());

           }

          

           return 0;

    }

  • 相关阅读:
    C++窗体应用程序
    C++继承方式简介及公有继承
    C++(继承的基本概念和语法)
    python(12)---科赫特雪花
    python(11)---pyinstaller
    20200914 day9 数据结构复习(一)
    20200914 day9 刷题记录
    20200913 day8模拟(二)
    20200912 day7 刷题记录
    20200912 day7 图论复习(一)
  • 原文地址:https://www.cnblogs.com/cutepig/p/1746937.html
Copyright © 2020-2023  润新知