zoukankan      html  css  js  c++  java
  • 指定函数的参数类型

    题目:海滩上有一堆桃子,五只猴子来分。第一只猴子把这堆桃子凭据分为五份,多了一个,这只
       猴子把多的一个扔入海中,拿走了一份。第二只猴子把剩下的桃子又平均分成五份,又多了
       一个,它同样把多的一个扔入海中,拿走了一份,第三、第四、第五只猴子都是这样做的,
       问海滩上原来最少有多少个桃子?
     
    方法1:          
    for i in range(10000):
        if (i*5+4)%4 == 0 :
           a=(i*5+4)/4 
           if (a*5+4)%4 == 0 :
              b=(a*5+4)/4 
               if (b*5+4)%4 == 0 :
                 c=(b*5+4)/4 
                  if (c*5+4)%4 == 0 :
                     d=(c*5+4)/4 
                     if (d*5+4)%4 == 0 :
                        e=(d*5+4)/4 
                         print i,a,b,c,d,e
                        break
     
     
    方法2:
    def r(j,int):
        if j%4 == 0 :
           return j*5/4+1   #(jj-1)*4/5=j,jj是j的上一个数
           
    for i in range(10000):
        if r(i,int) <>None and r(r(i,int),int) <>None and r(r(r(i,int),int),int) <>None
        and r(r(r(r(i,int),int),int),int) <>None and r(r(r(r(r(i,int),int),int),int),int) <>None:
           print i,r(i,int),r(r(i,int),int),r(r(r(i,int),int),int),r(r(r(r(i,int),int),int),int),r(r(r(r(r(i,int),int),int),int),int)
           break
     
     
    在用方法2时,一开始定义的def r(j),报错:unsupported operand type(s) for *: 'NoneType' and 'int' 。后面改为指定参数类型,才解决报错问题。
    经过分析,是因为r(j)不满足条件时也会返回None,而None作为参数传递使用时是无法进行运算操作的,r(j,int)则限定了参数必须是int类型。
     
     
    方法2修改后:
    def r(j):
        if j !=None :
           if j%4 == 0 :
               return int(j*5/4+1)   #(jj-1)*4/5=j,jj是j的上一个数
           
    for s in range(10000):
        s1=r(s)
        s2=r(s1)
        s3=r(s2)
        s4=r(s3)
        s5=r(s4)
        if (s1!= None) and (s2!= None) and (s3!= None) and (s4!= None) and (s5!= None):
           print s,s1,s2,s3,s4,s5
           break
     
     
  • 相关阅读:
    ls命令输出文件的绝对路径
    grep命令用关系或查询多个字符串
    pthread_cond_timedwait
    移位运算溢出:右操作数须小于左操作数的位数
    Source Insight symbol not found
    break和continue能否跳出函数
    Oracle ORA-01033: ORACLE initialization or shutdown in progress 错误解决办法. 重启服务
    git bash中不能显示中文
    docker初探
    C++ STL常见数据结构(容器)分类
  • 原文地址:https://www.cnblogs.com/myshuzhimei/p/11756722.html
Copyright © 2011-2022 走看看