• 01. 判断三角形的函数


    题目

    写一个判断是否为三角形的函数 parseTrigon(a,b,c) 。(语言请优先使用python>java>C>其它)。
    入参:a,b,c三个字符串代表三边,要求在函数内部判断各边长均为1~10的整数。
    返回值:有4种可能:-1(边长不合法),0(非三角形、即存在两边之和不大于第三边),1(普通三角形),2(等腰三角形),3(等边三角形);

    解题

    #!/usr/bin/env/python3
    # -*- coding:utf-8 -*-
    """
    @project: demo
    @author: zy7y
    @file: test_demo01.py
    @ide: PyCharm
    @time: 2020/8/31
    """
    
    """
    、写一个判断是否为三角形的函数 parseTrigon(a,b,c) 。(语言请优先使用python>java>C>其它)。
    入参:a,b,c三个字符串代表三边,要求在函数内部判断各边长均为1~10的整数。
    返回值:有4种可能:-1(边长不合法),0(非三角形、即存在两边之和不大于第三边),1(普通三角形),2(等腰三角形),3(等边三角形);

    """
    array=[1,2,3,4,5,6,7,8,9,10]
    
    def parseTrigon(a: str,b: str,c: str):
        try:
            a = int(a)
            b = int(b)
            c = int(c)
            if a in array and b in array and c in array:
                if a+b>c and a+c>b and b+c>a:
                    if a == b ==c:
                        return 3  # 等边三角形
                    elif a == b or b == c or a == c:
                        return 2  # 等腰三角形
                    else:
                        return 1  # 普遍三角形
                else:
                    return 0   # 非三角形
        except ValueError:
            return -1
    
    # 测试
    import pytest
    
    data = (
        ['1','2','3', 0],
        ['1', '1', '3', 1],
        ['3', '2', '3', 2],
        ['2', '2', '2', 3],
        ['1', '2', 'ss', 0]
    )
    
    
    @pytest.mark.parametrize('a,b,c,result',data)
    def test_pare_trigon(a,b,c,result):
        print(1)
        assert result == parseTrigon(a,b,c)
    
    if __name__ == '__main__':
        pytest.main()
    
    

    最后

    如果你有最优解,反应评论中写出。

    作者:zy7y
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须在文章页面给出原文链接,否则保留追究法律责任的权利。
  • 相关阅读:
    理财––股票
    API -- 图书
    PowerBuilder -- 数字金额大写
    CSS -- 未解之疑
    CSS -- position
    PowerBuilder -- 条码打印
    PowerBuilder -- 日期
    SQLServer -- SQL Server Database Error: 内部 SQL Server 错误
    Oracle -- 连接每行的内容
    性能优化
  • 原文地址:https://www.cnblogs.com/zy7y/p/13591054.html
Copyright © 2020-2023  润新知