自己编写的  可能代码有点冗余  欢迎大家提意见
1