简单题目练习一,题解(C++版)

题目链接

https://vjudge.net/contest/213410#overview

题解

https://github.com/somliy/code/tree/master


  • 不存在的

题解


hdu-2011 多项式求和

题意很明确,公式已经给出了
注意:
- 正负交替,这里使用flag *= -1;的方法
- 在进行运算的时候,如果使用的是int类型,如需要转换为double类型
- 函数类型为double

hdu-2005 第几天?

分析题目,计算出该日期是该年的第几天。
首先,每个月份的天数需要知道,2月是需要区分的,需要加上平年闰年的判断,根据年来改变2月的天数。
其次,假如日期为2006/3/12那么,3月的天数是不需要的,直接1月+2月+12即可
注意:

  • 闰年的判断
  • 2月随时年德变化而变化
  • 把每个月的天数初始化比较简单

hdu-2026 首字母变大写

不知道有没有坑,但是不能没有防坑的意识。
分析题目,输入一个英文句子,将每个单词的第一个字母改成大写字母。
如果是一个单词的话,开始字母前一定有空格(除首单词)

注意:
- 可能单词之间不只是一个空格,要防止这个
- 还有只有一个单词的样例
- 首单词要单独处理
- 使用gets()方法可以排除空格的影响

hdu-2041 超级楼梯

可以理解为是一个递推,也可以用dfs思想
分析题目,两种走法,一共n阶台阶,使用数组的方法存储走到当前阶的不同走法,例如a[2]=1 a[3]=2代表走到第2阶一共1中方法,走到3阶一共2种走法
那么a[4]呢,它只能从2或3阶台阶走上去,所以a[4]=a[3]+a[2],所以,a[n]=a[n-1]+a[n-2]
注意:

  • 打表计算不容易超时(先把4-40阶台阶所有的走法都算出来,根据输入的台阶数直接输出结果)
  • 有想法的可以用dfs方法写写试试

hdu-2089 不要62

和上一题一样需要打表
题目分析,要检测有没有62和4,那么换成字符串,只用内置函数就可以直接检测有没有,首先计算出1000005以内的数字,如果n有4或62,那么s[n]=0,反之s[n]=1,所以给出区间就可以直接把m到n的s[]和加出来就是答案了
注意:

  • 多组输入
  • 只用strstr函数,itoa函数(不知道是什么自己查)

hdu-1715 大斐波数

题目分析,到了F题就不可能是简单题了,肯定有坑,想想1000位的斐波那契数,肯定很大(几百位),long long肯定会爆,乘不下,那么自己构建一个数组,每一个代表每一位,a[0]代表个位,a[1]代表十位,为啥是从做开始数位递增,写写就知道了,这样写好写,剩下的就是模拟加法,有进位
注意:

  • 进位可能比原来的数字更长
  • 需要打表,用一个二维数组,第一个下表表示输入的位数,第二个下表各个位上的数组
  • 输出的时候需要把数字倒过来,即数组倒着输出,要把多余的0过滤
  • 注意进位
  • 需要初始化前面两个数字

hdu-1716 排列2

全排列,去重,dfs,排序
题目分析,从小到大的顺序输出所有能由这四张卡片组成的4位数,要求很简单,dfs的排序如果输入的时候是从小到大的,那么输出的就是从小到大的,这里使用了函数来全排列,如果不会dfs最好自己写,根据寒假培训的时候的例子
注意:

  • 排除0开头的组合
  • 什么时候需要多加一个换行
  • 输出的时候需要根据情况判断是不是输出,输出的时机

hdu-1718 Rank

虽然是英文题,但是很简单
这个题目的意思是问该学号在考试中获得第几名,当分数相同时并列
把学号当做数组输入即可,不长,但是需要用long long,这里采用的是倒序,用100减去分数,越小的分数越高,所以只需要一个数组记录人数,下表为1-100,记录分数,值为人数,只需要把此人的前的a数组和加起来,然后加1就是此人的排名
注意:

  • 用long long
  • 记录这个人的学号
  • 排名需要到自己,前面人数加1

那啥,写java版本的不用谢,记得一箱辣条。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值