
编程技巧妙用
发布日期:2021-05-07 09:50:55
浏览次数:15
分类:精选文章
本文共 1405 字,大约阅读时间需要 4 分钟。
编程技巧妙用
在日常做编程题目的时候,想必大家在很多简单的问题上采取了麻烦的做法,如:四舍五入,最后一位输出回车等等…
接下来,我分享一下,我接触过日常的编程小技巧 ↓↓↓↓1. 四舍五入
对于一个浮点数的四舍五入,可以自身+0.5之后再除1来进行。
例如:5.5四舍五入就可以用以上化简方式: (5.5+1)/1 = 6
2. 最后一位输出回车,其余空格
for(int i = 0; i < n; i ++){ printf("%d%c", ans[i], i==n-1?'\n':' '); }
3. 线性规划输出特定图形
想必大家对线性规划有一定的了解活着说是非常熟悉,但是我今天想说的就是把这种数学计算思维应用在编程当中。
大家可以把控制台的横向和纵向看成是一个坐标轴,只不过这个坐标轴的原点在左上方,y轴也是向下的。
拿一道例题来说明吧~~
金中的蛋糕裱花
描述
金中食堂做的蛋糕总是做成菱形,琪琪希望蛋糕上能裱上一圈小花,她想请你再帮个忙,用电脑画出用“*”号组成的裱花形状,这将是个空心的菱形。输入
一个整数,n>0。 输出 由n*2-1层 “*” 号组成的空心菱形。 样例输入5
样例输出
* * * * * * ** * * * * * * * *
代码如下:
#includeint main(){ int n,i,j; scanf("%d",&n); for(i=1;i<=n*2-1;i++) { for(j=1;j<=n*2-1;j++) { if((i==-j+n+1)||(i==j-n+1)||(i==j+n-1)||(i==-j+3*n-1)) printf("*"); else printf(" "); } printf("\n"); } return 0;}
当然扩展一下,如果想做出实心菱形,那么只需要把逻辑判断等于换成大于小于即可
代码如下:#includeint main(){ int n,i,j; scanf("%d",&n); for(i=1;i<=n*2-1;i++) { for(j=1;j<=n*2-1;j++) { if((i>=-j+n+1)&&(i>=j-n+1)&&(i<=j+n-1)&&(i<=-j+3*n-1)) printf("*"); else printf(" "); } printf("\n"); } return 0;}
当然,代码没有考虑菱形右边的空格问题,但是我想说说明的是计算思维应用到编程中会大大提升效率,无论是时间复杂度还是空间复杂度!
发表评论
最新留言
路过,博主的博客真漂亮。。
[***.116.15.85]2025年04月02日 12时06分43秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
王爽 《汇编语言》 读书笔记 三 寄存器(内存访问)
2019-03-04
JDK 内置的多线程协作工具类的使用场景
2019-03-05
Java 中哪些对象可以获取类对象
2019-03-05
11.2.6 时间值的小数秒
2019-03-05
Redis源码分析(七)--- zipmap压缩图
2019-03-05
自定义Hive Sql Job分析工具
2019-03-05
【MySQL】(九)触发器
2019-03-05
Oracle 11G环境配置
2019-03-05
【Python】(十二)IO 文件处理
2019-03-05
【Oozie】(三)Oozie 使用实战教学,带你快速上手!
2019-03-05
师兄面试遇到这条 SQL 数据分析题,差点含泪而归!
2019-03-05
C语言的数值溢出问题(上)
2019-03-05
函数指针的典型应用-计算函数的定积分(矩形法思想)
2019-03-05
8051单片机(STC89C52)以定时器中断模式实现两倒计时器异步计时
2019-03-05
用 wxPython 打印你的 App
2019-03-05
vue项目通过vue.config.js配置文件进行proxy反向代理跨域
2019-03-05
android:使用audiotrack 类播放wav文件
2019-03-05
聊聊我的五一小假期
2019-03-05