2010
6-10
一位正在初学C++的同事,突然问我一个问题,说用打印函数,只用for循环,怎么输出一个菱形?
想起来这是以前学编程时,非常基础的一个问题
本来以为很简单,于是随便想了一下,发现还真没想象那么简单额
于是乎,努力仔细的想想,于是下面的答案就出来了
当然是Flash写的:
我这个用了3个for循环,不知道有没有用的for循环更少的方法?
(注意哦,只能用for循环和基本的运算)
评论Feed: http://www.xiaos8.com/feed.asp?q=comment&id=574
想起来这是以前学编程时,非常基础的一个问题
本来以为很简单,于是随便想了一下,发现还真没想象那么简单额
于是乎,努力仔细的想想,于是下面的答案就出来了
当然是Flash写的:
我这个用了3个for循环,不知道有没有用的for循环更少的方法?
(注意哦,只能用for循环和基本的运算)
var k:int, result:String = "", sum:int = 7;
var s:int = Math.abs(- sum / 2);
for(var i:int = 0; i < sum; i ++){
var n:int = Math.abs(s - i);
var t:int = sum - n * 2;
for(k = 0; k < n; k ++){
result += " ";
}
for(k = 0; k < t; k ++){
result += "*";
}
result += "\n";
}
trace(result);输出结果:
*
***
*****
*******
*****
***
*
var s:int = Math.abs(- sum / 2);
for(var i:int = 0; i < sum; i ++){
var n:int = Math.abs(s - i);
var t:int = sum - n * 2;
for(k = 0; k < n; k ++){
result += " ";
}
for(k = 0; k < t; k ++){
result += "*";
}
result += "\n";
}
trace(result);输出结果:
*
***
*****
*******
*****
***
*
[最后修改由 sunbright, 于 2010-06-10 15:51:28]
评论Feed: http://www.xiaos8.com/feed.asp?q=comment&id=574
<script>
var colNum = 9;
var middleNum = space = Math.floor(colNum / 2);
for(var i=0;i<colNum;i++){
document.write(new Array(space + 1).join(' ') + new Array((middleNum - space) * 2 + 2).join('*') + '<br/>');
space = i < colNum / 2 && space > 0? space - 1: space + 1;
}
</script>用了个无耻的方法
var colNum = 9;
var middleNum = space = Math.floor(colNum / 2);
for(var i=0;i<colNum;i++){
document.write(new Array(space + 1).join(' ') + new Array((middleNum - space) * 2 + 2).join('*') + '<br/>');
space = i < colNum / 2 && space > 0? space - 1: space + 1;
}
</script>用了个无耻的方法
那这算是纯数学计算么?
正则下面那个<script>
var colNum = 9;
document.write(String(new Array(colNum * colNum + 1).join('.')).replace(/./g, function(a, b) {
var line = Math.floor(b / colNum);
var col = b % colNum;
var middleCol = Math.floor(colNum / 2);
var absNum = Math.abs(middleCol - line);
return (col < absNum || col >= colNum - absNum ? ' ': '*') + (col == colNum - 1?'<br/>':'');
}));
</script>
<script>
var s = '';
for(var i = 0; i < new Array(colNum * colNum).length; i ++ ){
s += (function(b) {
var line = Math.floor(b / colNum);
var col = b % colNum;
var middleCol = Math.floor(colNum / 2);
var absNum = Math.abs(middleCol - line);
return (col < absNum || col >= colNum - absNum ? ' ': '*') + (col == colNum - 1?'<br/>':'');
})(i);
}
document.write(s);
</script>
正则下面那个<script>
var colNum = 9;
document.write(String(new Array(colNum * colNum + 1).join('.')).replace(/./g, function(a, b) {
var line = Math.floor(b / colNum);
var col = b % colNum;
var middleCol = Math.floor(colNum / 2);
var absNum = Math.abs(middleCol - line);
return (col < absNum || col >= colNum - absNum ? ' ': '*') + (col == colNum - 1?'<br/>':'');
}));
</script>
<script>
var s = '';
for(var i = 0; i < new Array(colNum * colNum).length; i ++ ){
s += (function(b) {
var line = Math.floor(b / colNum);
var col = b % colNum;
var middleCol = Math.floor(colNum / 2);
var absNum = Math.abs(middleCol - line);
return (col < absNum || col >= colNum - absNum ? ' ': '*') + (col == colNum - 1?'<br/>':'');
})(i);
}
document.write(s);
</script>
第二个里的for条件应该是,脑子蒙了<script>
var s = '';
for(var i = 0; i < colNum * colNum; i ++ ){
s += (function(b) {
var line = Math.floor(b / colNum);
var col = b % colNum;
var middleCol = Math.floor(colNum / 2);
var absNum = Math.abs(middleCol - line);
return (col < absNum || col >= colNum - absNum ? ' ': '*') + (col == colNum - 1?'<br/>':'');
})(i);
}
document.write(s);
</script>
var s = '';
for(var i = 0; i < colNum * colNum; i ++ ){
s += (function(b) {
var line = Math.floor(b / colNum);
var col = b % colNum;
var middleCol = Math.floor(colNum / 2);
var absNum = Math.abs(middleCol - line);
return (col < absNum || col >= colNum - absNum ? ' ': '*') + (col == colNum - 1?'<br/>':'');
})(i);
}
document.write(s);
</script>
请教一个问题,我们现在有个项目是把swf包在c++内,使用swf的ExternalInterface来与c++通讯,但现在打算改成AIR2,怎么让AIR与C++通信呢?网上找到的例子都是只能通讯一次的,或者使用aperture framework, 应该采取什么方式呢?谢谢!
另外我这有个AIR打包工具
http://www.xiaos8.com/article.asp?id=501
原理就是用Flex的AIR调试工具,直接启动dll,让他可以直接运行的
你可以研究试试,我能提供的,就这么多了
http://www.xiaos8.com/article.asp?id=501
原理就是用Flex的AIR调试工具,直接启动dll,让他可以直接运行的
你可以研究试试,我能提供的,就这么多了
快速浏览
类别
标题
评论/流量
日期




- 查看svn更新内容以及最新状态(实时更新)
- 查看框架API文档(09.6.15更新)
- 查看框架代码(09.4.20更新)
框架暂停开发,且没有完全竣工,目前只能使用air包和library包!