当前位置: 首页 > 知识库问答 >
问题:

检查奇数/偶数并更改数字大小的输出

董建茗
2023-03-14

我有几个问题需要解决作业,有点卡住了。问题是编写一个程序,让用户输入一个奇数(检查它是否奇数),然后根据输入的大小打印一个颠倒的星形金字塔。

例如,如果你输入5,它会出现

*****
 ***
  *

因此,我的问题是双重的。

1)我如何检查它是偶数还是奇数?我试过如果数字/ 2 == int,希望它可以做一些事情,互联网告诉我如果数字%2 == 0,但这不起作用。

2)如何更改每行中间的星号?

对于任何一个问题的帮助,我们都非常感激。

共有3个答案

经嘉
2023-03-14

这里的一些解决方案引用了各种“偶数”操作所花费的时间,特别是n %2 vs n

简单的回答是,如果你使用的是大小合理的数字,通常

下面是一个图表来演示正在发生的事情(在Linux 5.1.2下使用Python 3.7.3):

基本上,当您点击“任意精度”longs时,模数会逐渐变慢,而按位运算会保持不变。此外,请注意这里的< code>10**-7乘数,即我每秒可以进行约3000万次(小整数)检查。

这是Python 2.7.16的相同情节:

这显示了Python较新版本中的优化。

我的机器上只有这些版本的Python,但可以为其他感兴趣的版本重新运行。在1和1e100之间有51个ns(在对数刻度上均匀间隔),对于每个点,我做的等效操作为:

timeit('n % 2', f'n={n}', number=niter) 

其中niter被计算为使timeit花费约0.1秒,并重复5次。对<code>n</code>的处理有点尴尬,这是为了确保我们没有同时对全局变量查找进行基准测试,这比局部变量慢。这些值的平均值用于绘制直线,各个值作为点绘制。

洪胜涝
2023-03-14

含%2的模2解很好,但那需要除法和减法。因为计算机使用二进制算术,所以更有效的解决方案是:

# This first solution does not produce a Boolean value. 
is_odd_if_zero = value & 1

# or

is_odd = (value & 1) == 1

# or

is_even = (value & 1) == 0
毕宇
2023-03-14

给你完整的答案毫无意义,因为这是家庭作业,所以这里有一些建议:

偶数或奇数:

number % 2 == 0

绝对是确定您的数字是否偶数的好方法。

如果您不知道 %,这会进行模运算,这是将数字除以 2 的余数。http://en.wikipedia.org/wiki/Modulo_operation

印刷金字塔:

第一个建议:要打印*****,您可以执行打印“*”*5

第二个建议:为了让星号居中,你需要找出星号前要写多少个空格。然后你可以用print"*1"*"*3打印一堆空格和星号。

 类似资料:
  • 问题内容: 如何确定给定数字是偶数还是奇数?我很久以来一直想弄清楚这个问题,而且还没到任何地方。 问题答案: 你可以使用模运算符,但这可能会很慢。如果是整数,则可以执行以下操作: 这是因为低位将始终设置为奇数。

  • 问题内容: 我正在尝试制作一个程序来检查单词是否是回文,并且到目前为止,它可以与具有偶数个数字的单词一起使用。我知道如果字母的数量为奇数时如何使它起作用,但是我只是不知道如何确定数字是否为奇数。有什么简单的方法可以找到数字是奇数还是偶数? 仅供参考,这是我的代码: 谢谢 问题答案: if num % 2 == 0: pass # Even else: pass # Odd 该符号就像除法一样,仅检

  • 例如,如果第一个< code > CharAt(0)= ' w ' ,我正在处理从用户输入得到的输出,以便只显示奇数或偶数。 它是否通过“System.out.println(CharAt(0)CharAt 2)CharAt(4))”工作? 我正在使用扫描仪项目获得用户输入,并已经有以下输入部分: 有没有办法只拥有像(0 奇数)这样的公式?

  • 本文向大家介绍PHP程序检查一个数的除数总数是偶数还是奇数,包括了PHP程序检查一个数的除数总数是偶数还是奇数的使用技巧和注意事项,需要的朋友参考一下 要检查一个数的除数总数是偶数还是奇数,代码如下: 示例 输出结果 定义了一个名为“ divisor_count”的函数,该函数给出给定数字的除数,该除数作为参数传递给该函数。现在,检查每个除数,看是否可以将其除以2,如果是,则将其除以偶数,否则将其

  • 问题内容: 找出数字/变量在PHP中是奇数还是偶数的最简单,最基本的方法是什么?与mod有关吗? 我已经尝试了一些脚本,但是.. google目前无法交付。 问题答案: 您认为mod是一个不错的起点是正确的。这是一个表达式,如果是偶数则返回true,如果是奇数则返回false: 例: 输出: 甚至

  • 我有一个布尔方法的麻烦,我想检查数组是偶数,奇数,还是两者都不是。我输入数组大小和数组值,但是“isArrayEven”方法仍然输出“array中的所有数字都是偶数”,即使我的数组是1、2、3并且isArrayEven假定是false。 我