PROBLEM A

分析

这个题属于非常基础的输出问题,一般来说见到这种题可以直接复制粘贴即可。

讲解

没有什么详细说明的直接复制粘贴即可。这样不容易出错。

代码

#include <stdio.h>
int main()
{printf("**************************\n");printf("         Very    Good!\n");printf("**************************\n");return 0;
}

点评

很基础的一道题,主要是熟悉OJ的使用和OJ的出题格式。

PROBLE B

分析

这个题相比第一题直接输出来说还多了输入。需要注意的是样例不代表程序只有10 20 30.而是其中之一是10 20 30.所有我们要调用scanf来进行输入。

怎么求三个数的最大值,其实有很多方法。在这里我就先介绍一种比较直观的数学方法了(当然应该不是最简单的,只是感觉比较好懂罢了)。

假设a,b,c 如果求出a,b的最大值,再求出a,c的最大值,那么不就是求出了a,b,c的最大值?

讲解

*下面的方法使用了?运算符请大家去翻一下课本如果有什么不清楚的话,不过也是基础的语法。这样可以减少代码量,当然再后续的学习中,会知道更多的函数来减少这种方法的代码量,但是这里不再详细介绍。

代码

#include <stdio.h>
int main()
{int a,b,c;scanf("%d %d %d",&a,&b,&c);int k1=(a>b)?a:b;int k2=(a>c)?a:c;int k3=(k1>k2)?k1:k2;printf("%d",k3);
}

点评

对于初学者而言可能不是一道轻松的题,但是掌握了这道题的话,说明你已经基本掌握了if的使用方法。

PROBLE C

分析

这个题说实话开始有点技术含量了,不是直接就能上手去做的。这里用到了循环语句,我在此用的是for,因为for对于计步循环来说还是比较好用的。这个题的难点在于怎么去求解2+22+222+…+22…222(n个2)的值的问题。

讲解

首先看到这种不断循环相加的情况,首先想到要用循环语句。对于上式的求解,其实经过观察我们可以发现一种方法。他们都是2*1,2*11,2*111的,那么怎么去实现这种功能呢,我们需要定义两个变量r,sum(当然其他的字母也可以,这里只是习惯上)。每次循环把r累积乘10再加1即可即r=r*10+1;用sum来进行计数。即sum+=2*r;到此程序的主要部分讲解完毕。

代码

注意下面sum初始值=2!!!i1开始循环!!

#include <stdio.h>
int main()
{int n,r,sum;scanf("%d",&n);r=1;sum=2;for(int i=1;i<n;i++){r=r*10+1;sum+=2*r;    }    printf("%d",sum);
}

点评

这可能是大家第一次做这种与数学相关的题目。其实我感觉这个题是告诉大家,编程跟数学是密切相关的。

PROBLE D

分析

这个题虽然只有三个数,但是也透露出了一丝丝排序算法的影子。但是在这里我就先不准备讲解排序的一些算法(如冒泡排序)了,直接讲解硬来的解法。

讲解

首先我们得知道交换变量的方法,其中一个就是三变量交换法。我们先定义一个t  t=a;a=b;b=t这样即可交换a和b,为什么要定义一个t来交换而不是直接交换呢,这些还需要你自己思考。那么有了这个交换变量的方法,我们就可以实施我们的方法了。我们进行直接硬来的三个if进行交换。例如if(a>b) { int t=a;a=b;b=t} 这样交换后就是a<=b了,同理还有(a>c) (b>c)两个,

出自紫书《算法竞赛入门经典》

详细请看代码

代码

 

#include <stdio.h>
int main()
{int a,b,c;scanf("%d %d %d",&a,&b,&c);if(a>b) {int t=a;a=b;b=t;}if(a>c) {int t=a;a=c;c=t;}if(b>c)    {int t=b;b=c;c=t;}printf("%d %d %d",a,b,c);return 0;
}

点评

这个题仅仅是三个数比大小如果是4个5个乃至更多的数呢?建议大家自己去学习一下排序的算法,推荐冒泡排序

PROBLE E

分析

这还是一道数学题,题目本身不难解法很多。但是这里出现了循环输入输出的问题需要注意。

讲解

循环输入输出的基本做法是用一个while函数来实现。这里不得不提一下scanf函数的返回值为输入正确的元素的个数,到EOF结束指的是end of file,文件末尾。因为oj的判卷是文件输入文件输出进行数据的匹配来进行判卷的。oj会把你的程序的输出文本与答案比对如果全部一致那么恭喜你就是accepted,如果是其他会提示别的情况,再次不详细说明,看群里文件的入门指南即可。因为要输入三个值所以需要写成 while(scanf(“%d %d %d”,&a,&b,&c)==3)

其他的就是判断三角形的方法,判断直角三角形的方法,方法很多不再详细介绍。

详细请看代码

代码

#include <stdio.h>
int main()
{int a,b,c;while(scanf("%d %d %d",&a,&b,&c)==3){if(a+b>c&&a+c>b&&b+c>a){if(a*a+b*b==c*c)printf("yes\n");elseprintf("no\n");}elseprintf("not a triangle\n");}return 0;
}

如果判断三角形条件有不熟悉的同学的话,可以看看代码里的if语句。

点评

这道题的要点我觉得在于循环输入和输出。题目本身而言并不难,只需要多多注意细节即可。

转载于:https://www.cnblogs.com/baccano-acmer/p/9716047.html

CONTEST1001 题解相关推荐

  1. 题解:::Contest1001 - 河南工程学院2022级新生周赛(一)

    目录 1,1316: Hello , HAUE 2,P1317 - 我必须立刻签到,因为它有手就行http://www.haueacm.top/problem.php?id=1317 3, P1318 ...

  2. BUCTOJ Contest1001 - 邀请赛20180814 问题 F: Poker

    http://116.196.97.99/problem.php?cid=1001&pid=5 本题源自 BUCTOJ Contest1001 - 邀请赛20180814 问题 F: Poke ...

  3. [JS][dfs]题解 | #迷宫问题#

    题解 | #迷宫问题# 题目链接 迷宫问题 题目描述 定义一个二维数组 N*M ,如 5 × 5 数组下所示: int maze[5][5] = { 0, 1, 0, 0, 0, 0, 1, 1, 1 ...

  4. [JS][dp]题解 | #打家劫舍(一)#

    题解 | #打家劫舍(一)# 题目链接 打家劫舍(一) 题目描述 描述 你是一个经验丰富的小偷,准备偷沿街的一排房间,每个房间都存有一定的现金,为了防止被发现,你不能偷相邻的两家,即,如果偷了第一家, ...

  5. [JS]题解 | #魔法数字#

    题解 | #魔法数字# 题目链接 魔法数字 题目描述 牛妹给牛牛写了一个数字n,然后又给自己写了一个数字m,她希望牛牛能执行最少的操作将他的数字转化成自己的. 操作共有三种,如下: 在当前数字的基础上 ...

  6. [JS]题解 | #岛屿数量#

    题解 | #岛屿数量# 题目链接 岛屿数量 题目描述 时间限制:1秒 空间限制:256M 描述 给一个01矩阵,1代表是陆地,0代表海洋, 如果两个1相邻,那么这两个1属于同一个岛.我们只考虑上下左右 ...

  7. [JS] 题解:提取不重复的整数

    题解:提取不重复的整数 https://www.nowcoder.com/practice/253986e66d114d378ae8de2e6c4577c1 时间限制:1秒 空间限制:32M 描述 输 ...

  8. 洛谷-题解 P2672 【推销员】

    独门思路!链表加优先队列! 这题一望,贪心是跑不掉了,但是我贪心并不好,所以想到了一个复杂一些但思路更保稳的做法 思路: 1 因为是离线操作,所以我们可以倒着求,先求x=n的情况,因为那样直接就知道了 ...

  9. [洛谷1383]高级打字机 题解

    题解 这道题一看就珂以用主席树啊 这是一道神奇的题目,那么我们先敲一个主席树,然后维护一个数组len,表示下一次应该在len + 1插入, 之后对于T操作,在上一个版本的len + 1上直接执行插入 ...

最新文章

  1. 机器学习、深度学习、自然语言处理、计算机视觉顶级期刊的论文资料分享(附顶会论文下载链接)...
  2. 1标志图片_这四种情况将不再扣分罚款!11月起,全国高速统一限速标志
  3. web前端【补充】CSS补充
  4. PC和服务器的IP地址信息DNS,PC和服务器的IP地址信息DNS
  5. 目标检测算法之Fast R-CNN算法详解
  6. 哪个线程执行CompletableFuture的任务和回调?
  7. JList的基本操作
  8. 【UVA - 10891 Game of Sum 】【HRBUST - 1622】 Alice and Bob (区间dp,博弈问题)
  9. 伺服电机常用参数设置_安川伺服电机参数基本调整..doc
  10. fanuc机器人与示教器配对_看FANUC机器人在重力浇铸行业,都是又累又重的活儿啊!...
  11. 傅里叶变换的终极解释下
  12. NRF52832学习笔记
  13. linux 第六章 linux中的进程管理
  14. 明解C语言。初级版 部分练习代码
  15. K8s(资源管理,namespace,Pod)
  16. 空洞卷积(膨胀卷积)的相关知识以及使用建议(HDC原则)
  17. 【python10个小实验】2、石头、剪刀、布
  18. 编写一个程序,计算学生的总分和平均成绩(一)
  19. eclipse下连接MYSQL教程
  20. 2023年,莫荒废了时光。

热门文章

  1. 如何动态调用WebServices
  2. 如何通过HTML标记或JS代码实现跳转返回页面顶部
  3. HTML DOM - 元素
  4. HBase-scan API 通过scan读取表中数据
  5. asp.net三层架构详解
  6. JVM源码分析-Java运行
  7. 尚硅谷图解Java数据结构和算法一
  8. gin使用自定义结构绑定表单数据
  9. golang中的strings.Trim
  10. Makefile_05:Make命令的自动推导