FizzBuzzWhizz问题python解法

FizzBuzzWhizz

你是一名体育老师,在某次课距离下课还有五分钟时,你决定搞一个游戏。此时有100名学生在上课。游戏的规则是:

1. 你首先说出三个不同的特殊数,要求必须是个位数,比方3、5、7。

2. 让全部学生拍成一队,然后按顺序报数。

3.
学生报数时,假设所报数字是第一个特殊数(3)的倍数,那么不能说该数字,而要说Fizz;假设所报数字是第二个特殊数(5)的倍数,那么要说Buzz;假设所报数字是第三个特殊数(7)的倍数,那么要说Whizz。

4. 学生报数时,假设所报数字同一时候是两个特殊数的倍数情况下,也要特殊处理,比方第一个特殊数和第二个特殊数的倍数,那么不能说该数字,而是要说FizzBuzz, 以此类推。假设同一时候是三个特殊数的倍数,那么要说FizzBuzzWhizz。

5. 学生报数时,假设所报数字包括了第一个特殊数,那么也不能说该数字,而是要说对应的单词,比方本例中第一个特殊数是3,那么要报13的同学应该说Fizz。假设数字中包括了第一个特殊数,那么忽略规则3和规则4,比方要报35的同学仅仅报Fizz,不报BuzzWhizz。

如今,我们须要你完毕一个程序来模拟这个游戏,它首先接受3个特殊数,然后输出100名学生应该报数的数或单词。比方,

def FizzBuzzWhizz(p_a,p_b,p_c):
for x in xrange(1,100):
print x,"Fizz"[0 if str(x).find(str(p_a))>-1 else 4:] or "Fizz"[x%p_a*4:] + "Buzz"[x%p_b*4:] + "Whizz"[x%p_c*5:] or x;

题目来源:https://www.jinshuju.net/f/EGQL3D

enjoy it.

FizzBuzzWhizz问题python解法,布布扣,bubuko.com

时间: 2024-10-13 00:09:33

FizzBuzzWhizz问题python解法的相关文章

最难面试的IT公司之ThoughtWorks代码挑战——FizzBuzzWhizz游戏(C#解法)

原题 一开始楼主傻BB直接求解,思路惨不忍睹,各种循环啊有木有?还写了个计算是否整除扩展方法以为重复复用很了不起啊(其实是傻...) 二逼青年的代码 1   #region so1 2             int[] count = new int[100]; 3             string[] s4 = new string[] { "Fizz", "Buzz", "Whizz" }; 4             for (int

PAT 1084 外观数列python解法

外观数列是指具有以下特点的整数序列:d, d1, d111, d113, d11231, d112213111, ...它从不等于 1 的数字 d 开始,序列的第 n+1 项是对第 n 项的描述.比如第 2 项表示第 1 项有 1 个 d,所以就是 d1:第 2 项是 1 个 d(对应 d1)和 1 个 1(对应 11),所以第 3 项就是 d111.又比如第 4 项是 d113,其描述就是 1 个 d,2 个 1,1 个 3,所以下一项就是 d11231.当然这个定义对 d = 1 也成立.本

LeetCode算法题python解法:24. Swap Nodes in Pairs

原题: Given a linked list, swap every two adjacent nodes and return its head. Example: Given 1->2->3->4, you should return the list as 2->1->4->3. Note: Your algorithm should use only constant extra space. You may not modify the values in

LintCode Python解法

3.统计数字(Digit Count) 计算数字 k 在 0 到 n 中的出现的次数,k 可能是 0~9 的一个值. 首先是,惯用思维,2个循环解决,这样做的时间复杂度为O(n*2) 1 class Solution: 2 """ 3 @param k: An integer 4 @param n: An integer 5 @return: An integer denote the count of digit k in 1..n 6 """

文本中剔除标点符号的纯python解法

punct = set(u''':!),.:;?]}¢'"..〉>」』]]]〞︰︱︳﹐?﹒ ﹔﹕﹖﹗﹚﹜﹞!),.::?|}︴︶︸︺︼︾﹀﹂﹄﹏?-¢ 々|?·ˇˉ―--′'"([{£¥'"‵〈<「『[[[([{£¥〝︵︷︹︻ ︽︿﹁﹃﹙﹛﹝({"'--_-''') # 对str/unicode filterpunt = lambda s: ''.join(filter(lambda x: x not in punct, s)) # 对list filt

leetcode Interleaving String python 解法

Given s1, s2, s3, find whether s3 is formed by the interleaving of s1 and s2. For example,Given:s1 = "aabcc",s2 = "dbbca", When s3 = "aadbbcbcac", return true.When s3 = "aadbbbaccc", return false. 方案1:DFS class Solu

约瑟夫环问题python解法

约瑟夫环问题:已知n个人(以编号1,2,3...n分别表示)围坐在一张圆桌周围.从编号为k的人开始报数,数到k的那个人被杀掉:他的下一个人又从1开始报数,数到k的那个人又被杀掉:依此规律重复下去,直到圆桌周围的人只剩最后一个. 思路是:当k是1的时候,存活的是最后一个人,当k>=2的时候,构造一个n个元素的循环链表,然后依次杀掉第k个人,留下的最后一个是可以存活的人.代码如下: class Node(): def __init__(self,value,next=None): self.valu

LeetCode算法题python解法:11. Container With Most Water

LeetCode第十一题 Given n non-negative integers a1, a2, ..., an , where each represents a point at coordinate (i, ai). n vertical lines are drawn such that the two endpoints of line i is at (i, ai) and (i, 0). Find two lines, which together with x-axis fo

LeetCode算法题python解法:23. Merge k Sorted Lists

Merge k sorted linked lists and return it as one sorted list. Analyze and describe its complexity. Example: Input: [   1->4->5,   1->3->4,   2->6 ] Output: 1->1->2->3->4->4->5->6 题目大意就是给定多个已经排序的链表合并成一个排序的链表,我这里是将多个链表的值遍