结尾非零数的奇偶性

描述:
给你一个正整数列表 L, 如 L=[2,8,3,50], 判断列表内所有数字乘积的最后一个非零数字的奇偶性,
奇数输出1,偶数输出0. 如样例输出应为0


#coding:utf-8

L=[2,8,3,50]
product=1
for i in L:
    product *=i

def main():
    global product
    while product:
        if product %10==0:
            product = product / 10
        else:
            if (product % 10) % 2 ==1:
                print 1
                break
            else:
                print 0
                break



if __name__ == '__main__':
    main()


#coding:utf-8

def main(l):
    g=lambda m,n:m*n
    r = reduce(g,l)
    print r
    #将数字转换成str类型,去除末尾的0后,取出最后一位数字
    num=int(str(r).strip()[-1])
    if num %2:
        return 1
    else:
        return 0

if __name__ == '__main__':
    L=[2,8,3,50]
    print main(L)

#coding:utf-8

def main(l):
    g=lambda m,n:m*n
    r = reduce(g,l)
    while 1 :
        #使用divmod函数,分别得到商、余数
        div = divmod(r,10)
        #如果余数为0,则将商赋给r,继续循环
        if div[1]==0:
            r=div[0]
        else:
            if div[1]%2:
                return 1
            else:
                return 0

if __name__ == '__main__':
    L=[2,8,3,50]
    print main(L)


该问题属于“普通文本型”。 --- ### 回答: **字符是否属于非零,取决于具体字符的值。** 在 C 语言中: - 字符是用 ASCII 码表示的整,类型为 `char`,本质是**整型类型**。 - 所以,**字符可以当作整参与运算**。 - 但并不是所有字符都表示“非零”,**只有 ASCII 码不为 0 的字符才是“非零”**。 --- ### 详细说明: #### ✅ 字符的本质是整(ASCII 码): 例如: | 字符 | ASCII 码 | 是否为 0 | |------------|-----------|-----------| | `'A'` | 65 | 是非零 | | `'0'` | 48 | 是非零 | | `' '`(空格) | 32 | 是非零 | | `'\0'` | 0 | 是零 | --- ### 示例代码: ```c #include <stdio.h> int main() { char c1 = 'A'; char c2 = '\0'; if (c1) { printf("字符 'A' 被视为非零\n"); // 会执行 } if (!c2) { printf("字符 '\\0' 被视为零\n"); // 会执行 } return 0; } ``` --- ### 总结: - ✅ 大多可见字符(如 `'A'`、`'1'`、`' '`)的 ASCII 码**不是 0**,在逻辑判断中被视为**非零**。 - ❌ 但 `'\0'` 的 ASCII 码是 0,在逻辑判断中被视为**零**,即“假”。 --- ✅ **知识点详解**: 1. **字符的本质是整(ASCII码)**: 每个字符都有一个对应的整值,例如 `'A'` 是 65。 2. **布尔逻辑中的0与非0判断**: 在 C 语言中,0 表示“假”,非0表示“真”。 3. **字符在逻辑表达式中的意义**: 字符可以用于判断真假,非零字符视为“真”,`'\0'` 视为“假”。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值