【转】写一个程序,打印数字1到100,3的倍数打印“Fizz”来替换这个数,5的倍数打印“Buzz”,对于既是3的倍数又是5的倍数的数字打印“FizzBuzz”
2016-11-13 23:09
1061 查看
有一道题是这样的:写一个程序,打印数字1到100,3的倍数打印“Fizz”来替换这个数,5的倍数打印“Buzz”,对于既是3的倍数又是5的倍数的数字打印“FizzBuzz”。
用Python只需要60个字符解决
for x in range(101):print”fizz”[x%3*4::]+”buzz”[x%5*4::]or x
是这样理解的:for x in range(101)生成一个1-100的序列,然后在这个序列中满足条件就会print,即print后分为两个部分—— 1.“fizz”[x%3*4::]+”buzz”[x%5*4::] 为第一部分,当x为3的整数时,x%3*4=0,即“fizz”[0::]=”fizz”,当x%3=1或=2时,x%3*4=4或=8,因为”fizz”一共有4个字符,所以fizz[x%3*4::]=”“。同理,当x若为5的倍数是,x%5*4=0,”buzz”[0::]=”buzz”,当x不为5的倍数时,”buzz”[x%5*4::]=”“,所以当x为3和5共同的倍数时,”fizz”[x%3*4::]+”buzz”[x%5*4::]=fizzbuzz。 2.第二部分为x,和第一部分间用逻辑关系 or 来连接,当前一部分为空时,输出后面的部分,即打印这个数本身。
表示真的是学到了,在此标记一下,免得以后忘掉。
用Python只需要60个字符解决
for x in range(101):print”fizz”[x%3*4::]+”buzz”[x%5*4::]or x
是这样理解的:for x in range(101)生成一个1-100的序列,然后在这个序列中满足条件就会print,即print后分为两个部分—— 1.“fizz”[x%3*4::]+”buzz”[x%5*4::] 为第一部分,当x为3的整数时,x%3*4=0,即“fizz”[0::]=”fizz”,当x%3=1或=2时,x%3*4=4或=8,因为”fizz”一共有4个字符,所以fizz[x%3*4::]=”“。同理,当x若为5的倍数是,x%5*4=0,”buzz”[0::]=”buzz”,当x不为5的倍数时,”buzz”[x%5*4::]=”“,所以当x为3和5共同的倍数时,”fizz”[x%3*4::]+”buzz”[x%5*4::]=fizzbuzz。 2.第二部分为x,和第一部分间用逻辑关系 or 来连接,当前一部分为空时,输出后面的部分,即打印这个数本身。
表示真的是学到了,在此标记一下,免得以后忘掉。
相关文章推荐
- 黑马程序员之C#编程基础学习笔记:不断要求用户输入一个数字,然后打印这个数字的二倍,当用户输入q的时候程序退出。
- 8.不断 要求用户输入一个数字,然后打印这个数字的二倍,当用户输入q的时候程序退出(return)
- 要求接收一个数字,程序会将这个数字以二进制方式打印
- 从键盘上得到一个1到100的数字,打印这个数字的二进制。
- 编写一个程序,要求接收一个数字,程序会将这个数字以二进制方式打印,例如:数字10 , 以1010的方式打印出来
- 输入一个整数,将这个整数以字符串的形式逆序输出 程序不考虑负数的情况,若数字含有0,则逆序形式也含有0,如输入为100,则输出为001
- 输入一个整数,将这个整数以字符串的形式逆序输出 程序不考虑负数的情况,若数字含有0,则逆序形式也含有0,如输入为100,则输出为001
- 黑马程序员—编写程序,打印1到100之内的整数,但数字中包含7的要跳过,例如:17、27、71、72
- 【微软100题】写一个函数,它的原形是int continumax(char *outputstr,char *intputstr) 功能: 在字符串中找出连续最长的数字串,并把这个串的长度返回
- 用1、2、3、3、4、5这六个数字,用java写一个程序,打印出所有不同的排列 要求:"4"不能在第三位,"3"与"5"不能相连。
- 【程序24】TestNumber.java 题目:给一个不多于5位的正整数,要求:一、求它是几位数,二、逆序打印出各位数字。
- 【微软100题】n个数字(0,1,…,n-1)形成一个圆圈,从数字0开始, 每次从这个圆圈中删除第m个数字(第一个为当前数字本身,第二个为当前数字的下一个数字)。 当一个数字删除后,从被删除数
- CSDN博客:对于一个程序员,写程序就是实现功能,遇到具体问题,解决这个问题,并记录问题到CSDN上,从而有所提高和互相帮助。
- 3.有一个整形数组,只有一个数字出现了一次,请编写程序判断这个数字(大概题目就是这样的,记不太清了)
- 黑马基础测试题:编写程序,打印1到100之内的整数,但数字中包含7的要跳过,例如:17、27、71、72
- 【C语言】编写一个程序,从标准输入读取几行输入。每行输入都要打印到标准输出上,前面加上行号。编写这个程序的时候要使这个程序能够处理的输入行的长度没有限制。
- 42.编写程序打印所有的“水仙花数”。“水仙花数”指一个三位数,其各位数字立方和等于该数本身,例如153是一个“水仙花数”,因为 153=1×1×1+3×3×3+5×5×5。
- 2. 编写一个Java应用程序,用户从键盘输入一个1~9999之间的数,程序将判断这个数是几位数,并判断这个数是否是回文数。回文数是指将该数含有的数字逆序排列后得到的数和原数相同,例如12121、32
- 用多线程的方式实现对一个数随机自增N次, 随机自减M次,最后打印出这个数字 (不能用原子操作类AtomicInteger)
- 8、 java 先写一个程序,打印从1到100的值。之后修改程序,通过使用break关键词,使得程序在打印到98时退出。然后尝试使用return来达到相同的目的。