测试一下自己的编程功底,编程序把1~100的数字打印出来

色郎中 2013-12-03 12:45:05
编写一个程序把1~100的数字打印出来。
不过,要把3的倍数打成"Fizz"(而不要打数字),把5的倍数打成"Buzz"。
而如果一个数既是3的倍数。又是5的倍数时,那就打成"Fizz-Buzz"。

据作者说,这个题目好多计算机科学专业的博士都不能现场写出来,更有多年经验自称高级程序员的也不能在几分钟内写出来... 好多要耗时 10分钟以上。。。

按作者的意思,就是10分钟内写出来,且越短时间写出来的,编程功底越高...
...全文
2290 54 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
54 条回复
切换为时间正序
请发表友善的回复…
发表回复
geng957 2016-08-16
  • 打赏
  • 举报
回复
引用 53 楼 geng957 的回复:

for (var i = 1; i < 101; i++) {

	var outp = i;
	if (i % 3 === 0) {
		outp = "Fizz";
	}

	if (i % 5 === 0) {
		if (outp === "Fizz") {
			outp = "Fizz-Buzz";
		} else {
			outp = "Buzz";
		}
	}

	console.log(outp);
}
将代码复制,打开浏览器按下f12,在console中黏贴回车即可,2min写出,这个问题应该不适合中国程序员。。
geng957 2016-08-16
  • 打赏
  • 举报
回复

for (var i = 1; i < 101; i++) {

	var outp = i;
	if (i % 3 === 0) {
		outp = "Fizz";
	}

	if (i % 5 === 0) {
		if (outp === "Fizz") {
			outp = "Fizz-Buzz";
		} else {
			outp = "Buzz";
		}
	}

	console.log(outp);
}
sky_php 2016-04-10
  • 打赏
  • 举报
回复
引用 40 楼 zzsj123 的回复:
<?php
for($i=1;$i<=100;$i++)
{
	if($i%3==0 && $i%5==0){
		echo "Fizz-Buzz"."<br>";
	}elseif($i%3==0){
	echo "Fizz"."<br>";	
}elseif($i%5==0){	
		echo "Bizz"."<br>";
	}else{	echo $i."<br>";
}	
}
?>
我承认用了半个小时!
你做对了~
baidu_34160188 2016-03-03
  • 打赏
  • 举报
回复
请求大神帮帮忙,我想要个是用于计算股票升跌,原油升跌,国际黄金市场升跌。我不要驱动,不要方案,不要代码。数据我提供,数据的输入都有我自己搞定。我只要编程好自动识别系统和分析系统就OK了。联系电话,13798429283
baidu_34160188 2016-03-03
  • 打赏
  • 举报
回复
是用于计算股票升跌,原油升跌,国际黄金市场升跌。我不要驱动,不要方案,不要代码。数据我提供,数据的输入都有我自己搞定。我只要编程好自动识别系统和分析系统就OK了。请教那个大神帮帮我。联系电话,13798429283
baidu_34160188 2016-03-03
  • 打赏
  • 举报
回复
请求大神帮帮忙,我想要个是用于计算股票升跌,原油升跌,国际黄金市场升跌。我不要驱动,不要方案,不要代码。数据我提供,数据的输入都有我自己搞定。我只要编程好自动识别系统和分析系统就OK了。联系电话,13798429283
sias_lihang 2015-10-20
  • 打赏
  • 举报
回复
>>>for x in range(101):print"fizz"[x%3*4::]+"buzz"[x%5*4::]or x
newnazi 2015-03-29
  • 打赏
  • 举报
回复
谁可以写出一个递归算法的 例子
newnazi 2015-03-29
  • 打赏
  • 举报
回复
楼猪骗经验的 ~
哟小菇凉 2013-12-16
  • 打赏
  • 举报
回复
这么难 真不会
MagiSu 2013-12-16
  • 打赏
  • 举报
回复
for i in range(1, 101): if i % 3 == 0 and i % 5 == 0: print("Fizz-Buzz") elif i % 3 == 0: print("Fizz") elif i % 5 == 0: print("Buzz"); else: print(i) 哎,不行啊,写了两个半小时……
欢乐的小猪 2013-12-12
  • 打赏
  • 举报
回复
for(int i=1;i<101;i++) { string result=i%3==0&&i%5==0?"fizz-buzz":(i%3==0?"fizz":(i%5==0?"buzz":i.toString())); console.writeline(result.toString()); }
cyc123007512 2013-12-12
  • 打赏
  • 举报
回复
10分钟写不出就说明技术不行吗? 如果大家做面试官就是这样面试?
Phodal 2013-12-12
  • 打赏
  • 举报
回复
如果要你在这里面用设计模式什么的,你会怎么想。我遇到的那家公司就是这样要求的。
zzsj123 2013-12-11
  • 打赏
  • 举报
回复
<?php
for($i=1;$i<=100;$i++)
{
	if($i%3==0 && $i%5==0){
		echo "Fizz-Buzz"."<br>";
	}elseif($i%3==0){
	echo "Fizz"."<br>";	
}elseif($i%5==0){	
		echo "Bizz"."<br>";
	}else{	echo $i."<br>";
}	
}
?>
我承认用了半个小时!
zxcullx 2013-12-08
  • 打赏
  • 举报
回复
javaScript: var len, i, nums = new Array(100); for(i=0;i<100;i++){ nums[i] = i; } len = 3; i = 2; while(len<100){ nums[len] = 'Fizz'; len = (i++) * 3; } len = 5; i = 2; while(len<100){ nums[len] = 'Buzz'; len = (i++) * 5; } len = 15; i = 2; while(len<100){ nums[len] = 'Fizz'; len = (i++) * 15; } var str = ''; for(i=0;i<100;i++){ str += nums[i]; str += ', '; } alert(str);
色郎中 2013-12-08
  • 打赏
  • 举报
回复
于是,我着手设计了一些问题,专门用于甄别这类开发人员。最终,借鉴一个英国学校里小孩子经常玩的游戏(也许是被逼着去玩的),我把这些问题归类称作为"Fizz-Buzz"问题。一个典型的"Fizz-Buzz"问题如下: 编写一个程序把1~100的数字打印出来。不过,要把3的倍数打成"Fizz"(而不要打数字),把5的倍数打成"Buzz"。而如果一个数既是3的倍数。又是5的倍数时,那就打成"Fizz-Buzz"。 大部分优秀的程序员都应该能在纸上轻易地把这个程序写出来,也就几分钟的事情。但你想知道一个令人震惊的事实吗?多数计算机科学专业的毕业生不会做这道题。我还见过一个自称是高级程序员的人做这道题,他居然花了10~15分钟。 Dan Kegel在招聘初级程序员的时候,也经历了类似的事情: 令人惊讶的是,有相当一部分的应聘者(包括那些获得计算机科学专业的硕士或博士学位的人),当他们被要求完成一个基本的编程任务时,他们都通不过,因此面试失败。举例来说,我曾经碰到过一些毕业生,他们居然回答不出"写一个从1数到10的循环"或者"在16进制里F后面的数是什么"之类的问题。如果务实一点,我在面试中也碰到过很多应聘者,他们不会用递归去解决一个实际的问题。但这些都是基本的技能。如果他们不会,只能说明他们很可能根本就没写过程序。 再次申明,不是作业题
圣光麦造 2013-12-06
  • 打赏
  • 举报
回复
Lz...你直接说是你作业题吧

for (int i = 1; i <= 100; i++)
            {
                if (i % (3 * 5) == 0)
                {
                    Console.WriteLine("Fizz-Buzz");
                }
                else if (i % 3 == 0) 
                {
                    Console.WriteLine("Fizz");
                }
                else if (i % 5 == 0)
                {
                    Console.WriteLine("Buzz");
                }
            }
色郎中 2013-12-05
  • 打赏
  • 举报
回复

于是,我着手设计了一些问题,专门用于甄别这类开发人员。最终,借鉴一个英国学校里小孩子经常玩的游戏(也许是被逼着去玩的),我把这些问题归类称作为"Fizz-Buzz"问题。一个典型的"Fizz-Buzz"问题如下:

编写一个程序把1~100的数字打印出来。不过,要把3的倍数打成"Fizz"(而不要打数字),把5的倍数打成"Buzz"。而如果一个数既是3的倍数。又是5的倍数时,那就打成"Fizz-Buzz"。

大部分优秀的程序员都应该能在纸上轻易地把这个程序写出来,也就几分钟的事情。但你想知道一个令人震惊的事实吗?多数计算机科学专业的毕业生不会做这道题。我还见过一个自称是高级程序员的人做这道题,他居然花了10~15分钟。

Dan Kegel在招聘初级程序员的时候,也经历了类似的事情:

令人惊讶的是,有相当一部分的应聘者(包括那些获得计算机科学专业的硕士或博士学位的人),当他们被要求完成一个基本的编程任务时,他们都通不过,因此面试失败。举例来说,我曾经碰到过一些毕业生,他们居然回答不出"写一个从1数到10的循环"或者"在16进制里F后面的数是什么"之类的问题。如果务实一点,我在面试中也碰到过很多应聘者,他们不会用递归去解决一个实际的问题。但这些都是基本的技能。如果他们不会,只能说明他们很可能根本就没写过程序。



原书中的部分章节.... 请自测的同学,写了代码后,标注时间呀 嘿嘿
qianquan3 2013-12-05
  • 打赏
  • 举报
回复
//编写一个程序把1~100的数字打印出来。不过,要把3的倍数打成"Fizz"(而不要打数字),把5的倍数打成"Buzz"。而如果一个数既是3的倍数。又是5的倍数时,
            //那就打成"Fizz-Buzz"。据作者说,这个题目好多计算机科学专业的博士都不能现场写出来,更有多年经验自称高级程序员的也不能在几分钟内写出来... 好多要耗时 10分钟以上。。。
            for (int i = 1; i <= 100; i++)
            {
                if (i % 15 == 0)
                {
                    Console.WriteLine(i+":Fizz-Buzz");
                }
                else if (i % 5 == 0)
                {
                    Console.WriteLine(i+":Buzz");
                }
                else if (i % 3 == 0)
                {
                    Console.WriteLine(i+":Fizz");
                }
            }
            Console.ReadKey();
加载更多回复(34)

660

社区成员

发帖
与我相关
我的任务
社区描述
提出问题
其他 技术论坛(原bbs)
社区管理员
  • community_281
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧