zoukankan      html  css  js  c++  java
  • acm_hdu ACM Steps Section2(1.2.1-1.2.8)

    1.2.1

    #include <stdio.h>
    #include <stdlib.h>

    #define up 6
    #define down 4
    #define stop 5

    int main(int argc, const char * argv[])
    {
    int n = 0;
    while (scanf("%d",&n) != EOF)
    {
    if (n == 0)
    exit(0);

    int current = 0;
    int next = 0;
    int sum = 0;

    for (int i = 0;i < n;i++)
    {
    scanf("%d",&next);
    if (next > current)
    {
    sum += (next - current)*up;
    sum += stop;
    current = next;
    }
    else if (next < current)
    {
    sum += (current - next)*down;
    sum += stop;
    current = next;
    }
    else
    sum += stop;//stop at the same floor will also cost 5 mins! - -
    }
    printf("%d ",sum);
    }
    return 0;
    }

    1.2.2

    #include <stdio.h>
    #include <stdlib.h>

    bool leapTest (int year)
    {
    if ((year%4==0 && year%100!=0) or year%400==0)
    return true;
    else
    return false;
    }

    int leapCompute (int start, int Nth)
    {
    //if year Y is a leap year,the 1st leap year is year Y
    if (leapTest(start))
    Nth--;
    //else year Y is not a leap year, forward to make year Y multiple of 4
    else
    { int res = start%4;
    start-=res;
    }

    while (Nth > 0)
    {
    start+=4;
    if (leapTest(start))
    Nth--;
    }
    return start;
    }

    int main(int argc, const char * argv[])
    {
    int n = 0;
    while (scanf("%d",&n) != EOF)
    {
    int start = 0;
    int Nth = 0;
    for (int i = 0;i < n;i++)
    {
    scanf("%d",&start);
    scanf("%d",&Nth);
    int end = leapCompute(start, Nth);
    printf("%d ", end);
    }
    }
    return 0;
    }

    1.2.3

    #include <stdio.h>
    #include <stdlib.h>

    int main(int argc, const char * argv[])
    {
    char c = 0;
    int sum = 0;
    int n = 1;
    int tmp = 0;
    while (scanf("%c",&c) != EOF)
    {
    if ('#' == c)
    exit(0);

    if (' ' == c)
    {
    printf("%d ",sum);
    sum = 0;
    n = 1;
    continue;
    }

    if (' ' == c)//space
    tmp = 0;
    else
    tmp = (int)c - 64;//A-Z:65-90
    sum += n*tmp;
    n++;
    }
    return 0;
    }

    1.2.4

    #include <stdio.h>
    #include <stdlib.h>

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

    double sum = 0;
    int count = 0;
    bool err_flag = false;
    double gpa = 0;
    char c = 0;
    while (scanf("%c",&c) != EOF)
    {
    if (' ' == c)
    {
    if (err_flag)
    printf("Unknown letter grade in input ");
    else
    printf("%4.2f ",gpa);
    sum = 0;
    count = 0;
    err_flag = false;
    gpa = 0;
    continue;
    }

    if (' ' == c)
    continue;

    if (c=='A')
    sum += 4;
    else if (c=='B')
    sum += 3;
    else if (c=='C')
    sum += 2;
    else if (c=='D')
    sum += 1;
    else if (c=='F')
    sum += 0;
    else
    {
    err_flag = true;//other characters:"Unknown letter grade in input"
    continue;
    }

    count++;
    gpa = sum/count;
    //printf("count=%d ",count);
    //printf("sum=%f ",sum);
    //printf("gpa=%f ",gpa);
    }
    return 0;
    }

    1.2.5

    #include <stdio.h>
    #include <stdlib.h>

    bool triangleTest(int *a, int *b, int *c)
    {
    int tmp = 0;
    if (*b > *a) //make a >= b
    {
    tmp = *b;
    *b = *a;
    *a = tmp;
    }

    if (*c > *b) //make b >= c
    {
    tmp = *c;
    *c = *b;
    *b =tmp;
    }

    if (*b > *a) //make a >= b, now (a,b,c) is (max,mid,min)
    {
    tmp = *b;
    *b = *a;
    *a = tmp;
    }

    if ((*b+*c) > *a)
    return true;
    else
    return false;
    }

    void triangleClassify(int a,int b,int c) //(a,b,c) is (max,mid,min)
    {
    if (a*a == b*b + c*c)
    printf("good ");
    else if (b == c or a==b)
    printf("perfect ");
    else
    printf("just a triangle ");
    }

    int main(int argc, const char * argv[])
    {
    int n = 0;
    while (scanf("%d",&n) != EOF)
    {
    for (int i = 0;i < n;i++)
    {
    int a,b,c = 0;
    scanf("%d%d%d",&a,&b,&c);
    if (triangleTest(&a,&b,&c))
    triangleClassify(a,b,c);
    else
    continue;
    }
    }
    return 0;
    }

    1.2.6

    #include <stdio.h>
    #include <stdlib.h>
    #include <math.h>

    int lowestBit (int number)
    {
    int count = 0;
    while ((number%2) == 0)
    {
    //printf("number=%d ",number);
    number = number >> 1;
    count++;
    }
    return pow(2,count);
    }

    int main(int argc, const char * argv[])
    {
    int number = 0;
    while (scanf("%d",&number) != EOF)
    {
    if (number == 0)
    exit(0);
    int res = lowestBit(number);
    printf("%d ", res);
    }
    return 0;
    }

    1.2.7

    #include <stdio.h>
    #include <stdlib.h>
    #include <math.h>
    #include <string.h>

    #define ID_card_len 18

    void fun (char *buf)
    {
    int areaFlag = 0;
    areaFlag = (buf[0] - 0x30)*10 + buf[1] - 0x30;

    char *p = buf;
    int i = 0;
    char year[4+1];
    for (i=0,p=&buf[6]; i<4; i++,p++)
    {
    year[i] = *p;
    }
    year[4] = '';

    char month[2+1];
    month[0] = buf[10];
    month[1] = buf[11];
    month[2] = '';

    char day[2+1];
    day[0] = buf[12];
    day[1] = buf[13];
    day[2] = '';

    char area[21];
    switch (areaFlag)
    {
    case 33:
    strcpy(area,"Zhejiang");
    break;
    case 11:
    strcpy(area,"Beijing");
    break;
    case 71:
    strcpy(area,"Taiwan");
    break;
    case 81:
    strcpy(area,"Hong kong");
    break;
    case 82:
    strcpy(area,"Macao");
    break;
    case 54:
    strcpy(area,"Tibet");
    break;
    case 21:
    strcpy(area,"Liaoning");
    break;
    case 31:
    strcpy(area,"Shanghai");
    break;
    default:
    break;
    }
    printf("He/She is from %s,and his/her birthday is on %s,%s,%s based on the table. ",
    area,month,day,year);
    }

    int main(int argc, const char * argv[])
    {
    int n = 0;
    while (scanf("%d",&n) != EOF)
    {
    getchar();
    char buf[ID_card_len+2]; //contain ' ',and ad2d ''
    for (int i=0;i<n;i++)
    {
    fgets(buf,ID_card_len+2,stdin);
    //printf("%s ", buf);
    fun (buf);
    }
    }
    return 0;
    }

    1.2.8

    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>

    int test (char c)
    {
    int res = 0;
    if (c>='a' && c<='z')
    res = 1;
    if (c>='A' && c<='Z')
    res = 2;
    return res;
    }

    void fun (char *c)
    {
    int res = 0;
    if (*c=='a' or *c=='e' or *c=='i' or *c=='o' or *c=='u' or
    *c=='A' or *c=='E' or *c=='I' or *c=='O' or *c=='U')
    {
    res = test(*c);//vowel to uppercase
    if (res == 1)
    *c = *c - 0x20;
    }
    else
    {
    res = test(*c);//other characters tp lowercase
    if (res == 2)
    *c = *c + 0x20;
    }
    }

    int main()
    {
    int n = 0;
    char str[1024];
    scanf("%d ",&n);//%d后面的空格不要丢了,要不然enter会被gets函数读入。
    //控制串的空白字符使在输入流中跳过一个或多个空白字符.
    while (n--)
    {
    gets(str);
    char *p = str;
    int len = strlen(str);
    while (len--)
    {
    fun(p);
    p++;
    }
    str[len] = '';
    printf("%s ", str);
    }
    return 0;
    }

  • 相关阅读:
    Android TabHost(选项卡)
    监控工具之---Prometheus查询持久性(六)
    监控工具之---Prometheus表达式promQL生产中应用(五)
    Grafana Configuration 参数详解(1)
    监控工具之---Prometheus数据可视化Grafana(七)
    监控工具之---Prometheus 安装详解(三)
    监控工具之---Prometheus 配置exporter四)
    Kubernetes容器编排技术---kubectl命令行工具用法详解(三)
    Kubernetes容器编排技术---Kubernetes基于kubeadm安装与配置(二)
    Azure Iaas基础之---创建虚拟机
  • 原文地址:https://www.cnblogs.com/kimihe/p/4509956.html
Copyright © 2011-2022 走看看