codewars-6kyu-give a diamond(打印菱形)
来源:互联网 发布:数据恢复精灵免费吗 编辑:程序博客网 时间:2024/06/08 15:22
今天练习的题目是打印砖石(菱形),就是给定行数(奇数行),用符号“*”打印。以前练习过这类的练习,于是乎,用了几个for循环完成了,代码如下:
function diamond(n){ var str1 = '',str2 = ''; var a = (n+1)/2; if(n%2 == 0 || n <= 1){ return null; }else{ for(var i = 1; i <= n; i++){ if(i <= a){ for(var j = a-i; j > 0;j--){ str1 = str1 + " "; } for(var k = 1; k <=2*i-1;k++){ str1 = str1 + "*"; } str1 = str1 + "\n";}else{ for(var j = i-a; j > 0;j--){ str2 = str2 + " "; } for(var k = 1; k <=2*(n-i)+1;k++){ str2 = str2 + "*"; } str2 = str2 + "\n"; } } } return str1 + str2; }
虽然实现了,但是觉得自己真的是弱爆了,为了实现这一功能用了那么多个循环,而且代码量也够大。做完之后,又到了学习大神们的时候了,我们来看看大神的写法:
codewars大神算法1:
function diamond(n){ if( n%2==0 || n<1 ) return null var x=0, add, diam = line(x,n); while( (x+=2) < n ){ add = line(x/2,n-x); diam = add+diam+add; } return diam;}//z.function repeat(str,x){return Array(x+1).join(str); }function line(spaces,stars){ return repeat(" ",spaces)+repeat("*",stars)+"\n"; }
codewars大神算法2:
function diamond(n){ if (n < 0 || n % 2 == 0) return null; for (var i = 0, diamond = ''; i < n; i++) { var stars = n - Math.abs(n - 2*i - 1); var spaces = (n - stars) / 2; while (spaces-- > 0) diamond += ' '; while (stars-- > 0) diamond += '*'; diamond += '\n'; } return diamond;}
阅读全文
0 0
- codewars-6kyu-give a diamond(打印菱形)
- print diamond - 打印菱形
- CodeWars练习之打印菱形
- 编写函数diamond打印一个菱形
- codewars-5kyu-Simple Pig Latin:正则表达式的使用
- 编写函数diamond打印一个菱形[题目来自Linux C编程一站式学习]
- Build Tower -- 6 kyu
- Consecutive strings -- 6 kyu
- codewar-6kyu-Vasya
- 打印菱形
- 打印菱形
- 打印菱形
- 打印菱形
- 打印菱形
- 打印菱形
- 打印菱形
- 打印菱形
- 打印菱形
- echarts-gl快速上手
- Android 粒子爆炸效果,可以给任意 view 添加该效果
- Android逆向系列之动态调试4–IDA调试dex
- 知识储备的集结地 对碎片化学习说No
- ATL、MFC、WTL CString 的今生前世
- codewars-6kyu-give a diamond(打印菱形)
- apue.h在哪
- C#EF框架里面的 join Left Join In 写法
- ORA-20011 ORA-29913 and ORA-29400 with Associated KUP-XXXXX Errors from DBMS_STATS.GATHER_STATS_JOB
- phpcms v9站点管理自定义变量 增加客服qq备案号等字段
- 错误ExecutionException: com.android.dex.DexIndexOverflowException: method ID not in [0, 0xffff]: 65536
- ASP.NET MVC 4 插件化架构简单实现-思路篇
- Windows系统“运行”也有快捷方式
- spark<Dataframe 直接写入hive表>