杭电oj100题 P1

不贴代码了,就是给自己记录记录,需要注意点的点

1.ASCII码排序:
方法1:三个数a,b,c的话,可以a和b比一次,然后b和c再比一次,最后a再和b比较一次就行了(三次比较)
方法二:直接用sort cmp,创建一个字符串数组,输入值之后,再cmp这个函数地方写比较方法,从小到大就小于,从大到小就大于

2.计算两点之间的距离
就是在知道公式的基础之上,进行计算。主要是格式问题:注意1.double 在输入(scanf)的地方是%lf,
而在输出(printf)是%f, 2.关于保留小数输出 使用%.mf,与这个类似的,%md int 类型向右对齐,至少超过m位,本身超过m位不变,不足之处用空格替代,%0m需要让输出最起码m位,不足之处用0替代。

3.计算球体积
直接公式 4/3pir^3 而x的y次可以用 pow(x,y) 来代替

4.求绝对值
1.用If 2.用 fbs 函数(这些都是需要 调用 math.h)

5.成绩转换
这里用到了switch case 还有就是 break和default。

6.第几天
这里是一个常考点
1.什么是闰年 (能被四整除并且不能被100整除的 比如2020,或者能被400整除的)
2.闰年有什么特点 就是2月份会变成29天
正常年份 31 28 31 30 31 30 31 31 30 31 30 31
闰年 31 29 31 30 31 30 31 31 30 31 30 31 (也就是366天)

7.求奇数的乘积
1.就是判断是不是奇数。。能不能整除2

8.水仙花数
就是怎么求个位,十位和百位。
个位:x%10
十位(x/10)%10;
百位 x/100

9.素数判断
1.暴力搜索:从2到sqrt(x)看存不存在能被整除的 ,除去1
2.用素数打表速度更快,且使用与找一定范围内的素数可以看看这个博客:https://blog.csdn.net/gui951753/article/details/79458021
思路就是:创建一个存素数的数组A和判断这个数是不是素数的数组B,
首先将数组B默认设置为全都是素数,然后循环从2开始,判断如果这个数是素数的话,那就将他的倍数全都变成不是素数(有因子的数确实不是素数)然后将这个数存到A数组中,循环继续

10.蟠桃记
简单的递推

11.偶数求和
就是分类讨论,看能不能把组合完全,如果能分完全就两次循环分别求出值,如果不能分完全的话,把最后一组分开讨论,其他组按照之前的方法继续两次循环求出值

12.数据的交换输出
那就暴力检索,找到最小值的位置,然后在循环结束之后,与第一个部分进行交换

13.母牛的故事
应该算是动态规划吧,求第n年母牛的数量,也就是等于n-1年母牛的数量,加上第n年出生的母牛数量,而第N年出生的,也就是,n-1年里面那些会生小牛的牛新生出来的牛,也就是四年前那些牛(因为那些牛四年之后,就都会生小牛了)

14.c语言合法标识符
也就是第一个字符必须要英文字母或者是下划线,然后其他的字符必须是英文字母或者下划线或者数字

15首字母变成大写
其实也就是第一个字母-‘a’+‘A’;

16求n个数的最小公倍数
主要就是一个怎么求两个数的公倍数,(辗转相除法)a/b=c;然后while一直循环

17.汉字统计
这道题其实不算是程序题,而是在于计算机的知识,1.机内码的ASCII是负数 2.两个字母组成一个汉字 所以统计字符负数的值,然后除以2 就是汉字的数字。

18.杨辉三角
也就是一个规律,创建一个二维数组。记住就行(或者说到时候临时判断 a[i][j]=a[i-1][j-1]+a[i-1][j])

19.进制转换
对于八进制和二进制来说都是正常的,而对于十六进制来说,其实就是 x-10+‘A’从十位数变成字符的换算

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值