博客
关于我
编程技巧妙用
阅读量:333 次
发布时间:2019-03-04

本文共 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

样例输出

*   * *  *   * *     **       * *     *  *   *   * *    *

代码如下:

#include
int 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;}

当然扩展一下,如果想做出实心菱形,那么只需要把逻辑判断等于换成大于小于即可

代码如下:

#include
int 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;}

当然,代码没有考虑菱形右边的空格问题,但是我想说说明的是计算思维应用到编程中会大大提升效率,无论是时间复杂度还是空间复杂度!

转载地址:http://dbfe.baihongyu.com/

你可能感兴趣的文章
ValueError: check_hostname requires server_hostname
查看>>
基于LabVIEW的入门指南
查看>>
PCB布局系列汇总
查看>>
电容入门知识
查看>>
2019CCPC女生专场赛_K - Tetris_打表/模拟_暴力之王
查看>>
“/”应用程序中的服务器错误。
查看>>
MUI之ajax获取后台接口数据
查看>>
使用sqlserver 查询不连续的数据
查看>>
用div+css+html+js 实现图片放大
查看>>
(原创)在Linux上安装运行Python3(CentOS7为例)
查看>>
变量覆盖漏洞
查看>>
weblogic之cve-2015-4852
查看>>
Java注释
查看>>
水调歌头·1024
查看>>
对不起
查看>>
C++ 函数重载
查看>>
Nginx简介
查看>>
Nginx的Gzip功能
查看>>
Azure Storage 系列(四)在.Net 上使用Table Storage
查看>>
[模板] 带修莫队
查看>>