鱼C论坛

 找回密码
 立即注册
查看: 2124|回复: 2

[已解决]函数模块化设计

[复制链接]
发表于 2018-5-26 16:08:36 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
任何一个整数n的立方都可以表示成n个相邻的奇数之和,其中最大的奇数为d=2m-1,而m=1+2+3+4......+n,怎样编写一个程序,有键盘输入一个整数n,求n的立方是哪些奇数之和,用子函数编写。。。。。。。。。各路大神快来救救我啊,  想了好久了 ,没有头绪,唉唉唉!!!!!!
最佳答案
2018-5-26 22:50:02
本帖最后由 simplerjiang 于 2018-5-26 22:51 编辑

代码是由python写的。如果需要C的版本也可以提供。
编程最好的就是,你几乎不需要理解它怎么做的,只需要知道它步骤有哪些,
交给计算机去做就好了

  1. def count(n):
  2.     m = 0
  3.     for i in range(n):
  4.         m += i+1

  5.     d = 2 * m - 1 #获得最大的奇数
  6.     n3 = n * n * n #获得n的立方
  7.     result = []
  8.     while 1:
  9.         if n3 - d < 0: #如果小于0了就错了,但其实不会错
  10.             return False
  11.         elif n3 - d == 0:     #如果等于0,说明d是最后一个奇数
  12.             result.append(d)
  13.             return result #返回列表
  14.         else:
  15.             n3 = n3 - d  #用奇数减去n的立方,并赋值给n3这个变量,以供下一个循环
  16.             result.append(d)
  17.             d = d -2 #奇数-2,赋值给d变量,作为下一个奇数,以供下一个循环

  18. if __name__ == "__main__":
  19.     n = int(input("请输入一个整数"))
  20.     result = count(n)
  21.     n3 = n * n * n
  22.     print("%d == %d * %d * %d" % (n3,n,n,n))
  23.     n3_test = 0
  24.     for i in result:
  25.         if i == result[-1]:
  26.             print(i)
  27.             n3_test += i
  28.             break
  29.         print(i)
  30.         print("+")
  31.         n3_test += i
  32.     print('==')
  33.     print(n3_test) #这里我做了一个测试,计算这些奇数加起来是不是等于n的立方,其实是没必要的


复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-5-26 22:50:02 | 显示全部楼层    本楼为最佳答案   
本帖最后由 simplerjiang 于 2018-5-26 22:51 编辑

代码是由python写的。如果需要C的版本也可以提供。
编程最好的就是,你几乎不需要理解它怎么做的,只需要知道它步骤有哪些,
交给计算机去做就好了

  1. def count(n):
  2.     m = 0
  3.     for i in range(n):
  4.         m += i+1

  5.     d = 2 * m - 1 #获得最大的奇数
  6.     n3 = n * n * n #获得n的立方
  7.     result = []
  8.     while 1:
  9.         if n3 - d < 0: #如果小于0了就错了,但其实不会错
  10.             return False
  11.         elif n3 - d == 0:     #如果等于0,说明d是最后一个奇数
  12.             result.append(d)
  13.             return result #返回列表
  14.         else:
  15.             n3 = n3 - d  #用奇数减去n的立方,并赋值给n3这个变量,以供下一个循环
  16.             result.append(d)
  17.             d = d -2 #奇数-2,赋值给d变量,作为下一个奇数,以供下一个循环

  18. if __name__ == "__main__":
  19.     n = int(input("请输入一个整数"))
  20.     result = count(n)
  21.     n3 = n * n * n
  22.     print("%d == %d * %d * %d" % (n3,n,n,n))
  23.     n3_test = 0
  24.     for i in result:
  25.         if i == result[-1]:
  26.             print(i)
  27.             n3_test += i
  28.             break
  29.         print(i)
  30.         print("+")
  31.         n3_test += i
  32.     print('==')
  33.     print(n3_test) #这里我做了一个测试,计算这些奇数加起来是不是等于n的立方,其实是没必要的


复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-5-27 10:17:46 | 显示全部楼层
还在学c,python还没接触,看不懂
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-25 07:54

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表