零基础(伪)HDOJ水题总结【1】

首先要解决的是输入输出的问题。作为一个渣渣新手,我用以前学的 C++写了错误代码提交,后果可想而知。

所以认认真真的看了【ACM新手之八大输入输出】,格式记好,在后面运用会越用越熟的。
2000
很easy的一题,首先,现在假设我什么都不会(至少编译器,头文件,基本格式知道)我要解决该怎么办?(以后需要学的和缺少的直接补上,不多说。)
1.比较大小,高中算法讲过。我搜到的【冒泡排序】以后再探讨。
2.但是getchar()的用法,忘了。我只知道用一个东西(…)把字符转化成ASCII码,然后可以排序。

百度了一下,原来如此。

另:getchar()  putchar()  puts()

puts(char *p)

printf(char *p,s)

审题:空格!

#include<stdio.h>
int main()
{
    char ch1,ch2,ch3,temp;
    while(scanf("%c%c%c",&ch1,&ch2,&ch3)!=EOF)
    {
        getchar();
        if(ch1>ch2)
        {
          temp=ch1;
          ch1=ch2;
          ch2=temp;
        }
         if(ch1>ch3)
        {
            temp=ch1;
            ch1=ch3;
            ch3=temp;
        }
        if(ch2>ch3)
        {
            temp=ch2;
            ch2=ch3;
            ch3=temp;
        }
        printf("%c%2c%2c\n",ch1,ch2,ch3);
    }
return 0;
}

2001
1.第二题竟然狗血的想到了数组(其实没那么麻烦,两个变量罢了)学呗,数组此题的代码不是一般的长啊。本着KISS原则(keep it simple and stupid)。还是用简单方法吧。【数组】回顾get
2.<math.h>与<cmath>
sqrt 和 abs fabs比较常用?库函数使用得当可以提高编码效率。

#include<stdio.h>
#include<math.h>
int main()
{
    double x1,y1,x2,y2,dist;
    while(scanf("%lf%lf%lf%lf",&x1,&y1,&x2,&y2)!=EOF)
    {
        dist=sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2));
        printf("%.2lf\n",dist);
    }
    return 0;
}

2002
1.#define 宏定义,方便以后的修改。
2.(刚搞懂C语言中没乘方:BASIC是有的。

#include <math.h>
double  y=pow(m,n);
#define PI 3.1415927
#include<stdio.h>
int main()
{
    double a,v;
    while(scanf("%lf",&a)!=EOF)
    {
        v=(4.0/3)*PI*a*a*a;
        printf("%.3lf\n",v);
    }
    return 0;
}

2003

1.与其用函数,不如直接来的爽快。

2.double

#include<stdio.h>
int main()
{
    double a;
    while(scanf("%lf",&a)!=EOF)
    {
        if(a<0) a=(-a);
        printf("%.2lf\n",a);
    }
return 0;
}

2004

1.switch语句  学习 注意break

#include<stdio.h>
int main()
{
    int a,b;
    while(scanf("%d",&a)!=EOF)
    {
        b=a/10;
        if(a<0||a>100)
            b=(-1);
        switch(b)
        {
        case 10:
        case 9: printf("A\n");break;
        case 8: printf("B\n");break;
        case 7: printf("C\n");break;
        case 6: printf("D\n");break;
        case 5:
        case 4:
        case 3:
        case 2:
        case 1:
        case 0: printf("E\n");break;
        case -1:printf("Score is error!\n");break;
        default:break;
        }
    }
return 0;
}

default:注意

2.但是 冗长剪枝。这是和下一题是一个道理。于是,看的【数组】就用上了。

#include <stdio.h>
char r[11]={‘E‘,‘E‘,‘E‘,‘E‘,‘E‘,‘E‘,‘D‘,‘C‘,‘B‘,‘A‘,‘A‘};
int main()
{
    int s;
    while (scanf("%d",&s)!=EOF)
    {
        if(s>100||s<0)
            printf("Score is error!\n");
        else
            printf("%c\n",r[s/10]);
    }
    return 0;
}

2005

1.直接贴代码,如上

#include <stdio.h>
int Month[2][13]={
    {0,31,28,31,30,31,30,31,31,30,31,30,31},
    {0,31,29,31,30,31,30,31,31,30,31,30,31}
};
int main()
{
    int y,m,d,sum,f,i;
    while (scanf("%d/%d/%d",&y,&m,&d)!=EOF)
    {
        sum=0;
        f=((y%400==0) || (y%100!=0) && (y%4==0));
        i=1;
        while (i<m)
            sum+=Month[f][i++];
        printf("%d\n",sum+d);
    }
    return 0;
}

这里应该是

2006

1.

时间: 2024-10-24 19:50:32

零基础(伪)HDOJ水题总结【1】的相关文章

Python 基础练习 PAT水题(二)

#学习笔记 #用以练习Python基础 # 原题链接:https://www.patest.cn/contests/pat-b-practise/1011 1011. A+B和C (15) 给定区间[-231, 231]内的3个整数A.B和C,请判断A+B是否大于C. 输入格式: 输入第1行给出正整数T(<=10),是测试用例的个数.随后给出T组测试用例,每组占一行,顺序给出A.B和C.整数间以空格分隔. 输出格式: 对每组测试用例,在一行中输出"Case #X: true"如果

Python 基础练习 PAT水题(三)

#学习笔记 #用以练习python基础 # 原题链接:https://www.patest.cn/contests/pat-b-practise/1039 1039. 到底买不买(20) 小红想买些珠子做一串自己喜欢的珠串.卖珠子的摊主有很多串五颜六色的珠串,但是不肯把任何一串拆散了卖.于是小红要你帮忙判断一下,某串珠子里是否包含了全部自己想要的珠子?如果是,那么告诉她有多少多余的珠子:如果不是,那么告诉她缺了多少珠子. 为方便起见,我们用[0-9].[a-z].[A-Z]范围内的字符来表示颜色

Python 基础练习 PAT水题(一)

#学习笔记 #用以练习Python基础 # #原题链接 https://www.patest.cn/contests/pat-b-practise/1046 1046. 划拳(15) 划拳是古老中国酒文化的一个有趣的组成部分.酒桌上两人划拳的方法为:每人口中喊出一个数字,同时用手比划出一个数字.如果谁比划出的数字正好等于两人喊出的数字之和,谁就赢了,输家罚一杯酒.两人同赢或两人同输则继续下一轮,直到唯一的赢家出现. 下面给出甲.乙两人的划拳记录,请你统计他们最后分别喝了多少杯酒. 输入格式: 输

Python 基础练习 PAT水题(四)

#学习笔记 #用以练习python基础 # 原题链接:https://www.patest.cn/contests/pat-b-practise/1050 1050. 螺旋矩阵(25) 本题要求将给定的N个正整数按非递增的顺序,填入"螺旋矩阵".所谓"螺旋矩阵",是指从左上角第1个格子开始,按顺时针螺旋方向填充.要求矩阵的规模为m行n列,满足条件:m*n等于N:m>=n:且m-n取所有可能值中的最小值. 输入格式: 输入在第1行中给出一个正整数N,第2行给出N

HDOJ 2317. Nasty Hacks 模拟水题

Nasty Hacks Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 3049    Accepted Submission(s): 2364 Problem Description You are the CEO of Nasty Hacks Inc., a company that creates small pieces of

水题 HDOJ 4716 A Computer Graphics Problem

题目传送门 1 /* 2 水题:看见x是十的倍数就简单了 3 */ 4 #include <cstdio> 5 #include <iostream> 6 #include <algorithm> 7 #include <cstring> 8 #include <string> 9 #include <cmath> 10 using namespace std; 11 12 const int MAXN = 1e4 + 10; 13

水题 HDOJ 4727 The Number Off of FFF

题目传送门 1 /* 2 水题:判断前后的差值是否为1,b[i]记录差值,若没有找到,则是第一个出错 3 */ 4 #include <cstdio> 5 #include <iostream> 6 #include <algorithm> 7 #include <cstring> 8 #include <string> 9 #include <cmath> 10 using namespace std; 11 12 const in

HDOJ/HDU 1256 画8(绞下思维~水题)

Problem Description 谁画8画的好,画的快,今后就发的快,学业发达,事业发达,祝大家发,发,发. Input 输入的第一行为一个整数N,表示后面有N组数据. 每组数据中有一个字符和一个整数,字符表示画笔,整数(>=5)表示高度. Output 画横线总是一个字符粗,竖线随着总高度每增长6而增加1个字符宽.当总高度从5增加到6时,其竖线宽度从1增长到2.下圈高度不小于上圈高度,但应尽量接近上圈高度,且下圈的内径呈正方形. 每画一个"8"应空一行,但最前和最后都无空

HDOJ/HDU 2560 Buildings(嗯~水题)

Problem Description We divide the HZNU Campus into N*M grids. As you can see from the picture below, the green grids represent the buidings. Given the size of the HZNU Campus, and the color of each grid, you should count how many green grids in the N