鱼C论坛

 找回密码
 立即注册
楼主: wei_Y

[技术交流] 【Challenge】仅用一条循环语句完成的乘法表

[复制链接]
发表于 2015-9-14 19:27:46 | 显示全部楼层
wdsttcst5 发表于 2015-9-14 18:43
这玩意真能做出来吗。。。

想破脑袋也想不出来:cry
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-9-14 21:50:57 | 显示全部楼层

回帖奖励 +3 鱼币

QQ截图20150914214055.png


新手,只会这样写,想看看别人答案!
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-9-14 21:51:21 | 显示全部楼层

回帖奖励 +3 鱼币

想不出来
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-9-14 22:08:42 | 显示全部楼层

回帖奖励 +3 鱼币

为了鱼币写作业
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-9-14 23:59:52 | 显示全部楼层

回帖奖励 +3 鱼币

string=[('1'),
        ('2 4'),
        ('3 6 9'),
        ('4 8 12 16'),
        ('5 10 15 20 25'),
        ('6 12 18 24 30 36'),
        ('7 14 21 28 35 42 49'),
        ('8 16 24 32 40 48 56 64'),
        ('9 18 27 36 45 54 63 72 81'),
        ('10 20 30 40 50 60 70 80 90 100')]
for i in range(10):
    print(string[i])

点评

x可以是任意整数  发表于 2015-9-15 18:21
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-9-15 00:39:25 | 显示全部楼层

回帖奖励 +3 鱼币

表示小白路过...
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-9-15 08:36:43 | 显示全部楼层

回帖奖励 +3 鱼币

看着封面就进来了。。。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-9-15 09:02:45 | 显示全部楼层
坐等公布答案 话说好难啊 什么时候活动结束呢?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-9-15 10:47:22 | 显示全部楼层

回帖奖励 +3 鱼币

本帖最后由 富友郑鹏展 于 2015-9-15 15:00 编辑

改了,这样应该可以吧? @wei_Y
其实还可以更好:big

def test(n):
    b=[]
    for i in range(1,n+1):
        b.append(i)
        print('%d '*len(b)% tuple(map(lambda x:x*i,b)))

点评

我很赞同!: 4.0
我很赞同!: 4
循环体内只允许出现一个变量~~。  发表于 2015-9-15 11:55

评分

参与人数 2荣誉 +12 鱼币 +12 收起 理由
戴宇轩 + 6 + 6 支持楼主!
wei_Y + 6 + 6 支持楼主!

查看全部评分

小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-9-15 12:43:35 | 显示全部楼层

回帖奖励 +3 鱼币

python不懂C语言我真的想不出来了诶~~
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-9-15 21:07:11 | 显示全部楼层

回帖奖励 +3 鱼币

本帖最后由 翅膀团 于 2015-9-15 21:08 编辑
  1. Python 3.4.2 (v3.4.2:ab2c023a9432, Oct  6 2014, 22:16:31) [MSC v.1600 64 bit (AMD64)] on win32
  2. Type "copyright", "credits" or "license()" for more information.
  3. >>> def test(n):
  4.     b = ''
  5.     j = n
  6.     def t(j):
  7.         nonlocal b
  8.         a = ''
  9.         if j == 0:
  10.             print(b,end = '')
  11.             return
  12.         for i in range(j):
  13.             a = a + str(j*(i+1)) + ' '
  14.         a = a + '\n'
  15.         b = a + b
  16.         return t(j-1)
  17.     return t(j)

  18. >>> test(10)
  19. 1
  20. 2 4
  21. 3 6 9
  22. 4 8 12 16
  23. 5 10 15 20 25
  24. 6 12 18 24 30 36
  25. 7 14 21 28 35 42 49
  26. 8 16 24 32 40 48 56 64
  27. 9 18 27 36 45 54 63 72 81
  28. 10 20 30 40 50 60 70 80 90 100  
复制代码


用了if

点评

我很赞同!: 4.0
我很赞同!: 4
循环里只能有一个变量(i)~ PS 好NB的思路,我还不太擅长递归呢^_^。。。  发表于 2015-9-16 18:48
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-9-16 08:33:39 | 显示全部楼层

回帖奖励 +3 鱼币

ggggg
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-9-16 08:39:04 | 显示全部楼层

回帖奖励 +3 鱼币

# 新手写代码,版主不要笑喷
i = 10
while i:
    yubi = ((11 - i), (11 - i)*2, (11 - i)*3, (11 - i)*4, (11 - i)*5, (11 - i)*6, (11 - i)*7, (11 - i)*8, (11 - i)*9, (11 - i)*10)
    # 我就是想鱼币想疯了
    koujue = '%d ' * len(yubi[:(11-i)]) % (yubi[:(11-i)])
    print(koujue)
    i -= 1

点评

我很赞同!: 1.0
我很赞同!: 1
n可以为任意整数哦~。  发表于 2015-9-16 11:58
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-9-16 14:49:01 | 显示全部楼层

回帖奖励 +3 鱼币

感谢小甲鱼老师
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-9-16 15:52:44 | 显示全部楼层

回帖奖励 +3 鱼币

没有规定能不能使用MAP函数,如果能使用,就好做多了

点评

我很赞同!: 4.0
map可以用  发表于 2015-9-16 17:09
我很赞同!: 4
可以使用内置函数  发表于 2015-9-16 17:09
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-9-16 17:19:23 | 显示全部楼层
  1. def func(n):
  2.         item=[]
  3.         for i in range(1,n+1):
  4.                 item.append("%d*{0}"%i)
  5.                 out=str(eval(",".join(item).format(i))).strip("()")
  6.                 print("".join(out.split(",")))
复制代码

这方法如何?

点评

我很赞同!: 4.0
我很赞同!: 4
嗯。i是第一个变量。out是第二个变量。item在循环体外~~。  发表于 2015-9-16 18:47
我很赞同!: 4
不错~但是循环里只能有一个变量,item是这个循环里的第二个变量  发表于 2015-9-16 18:42
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-9-16 19:33:28 | 显示全部楼层

回帖奖励 +3 鱼币

本帖最后由 yu'er 于 2015-9-16 19:54 编辑
  1. n = int( input('请输入任意正整数:') )
  2. list1 = []
  3. for i in range(1,n+1):
  4.         list1.append(i)
  5.         print( (' ').join( map( lambda x: str(x*i), list1 ) ) )
复制代码

点评

我很赞同!: 3.0
我很赞同!: 3
每个循环体内只能有一个变量,list2和str1是不被允许的  发表于 2015-9-16 19:46
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-9-17 09:20:19 | 显示全部楼层
顶一下
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-9-18 01:53:31 | 显示全部楼层

回帖奖励 +3 鱼币

map算么?

点评

我很赞同!: 0.0 不,我坚决不同意楼主的看法!: 0.0
我很赞同!: 0 不,我坚决不同意楼主的看法!: 0
能用  发表于 2015-9-18 17:44
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-9-18 11:01:23 | 显示全部楼层

回帖奖励 +3 鱼币

本帖最后由 jiagd0105 于 2015-9-18 11:18 编辑

能在这个基础上优化一下么?
  1. print('\n'.join(['\t'.join([str(x*y) for y in range(1,x+1)])for x in range(1,9+1)]))
复制代码


或者用map+lambda
  1. print('\n'.join(list(map(lambda x:'\t'.join(list(map(lambda y:str(x*y),range(1,x+1)))),range(1,9+1)))))
复制代码


但是还是出现了两个变量  - - :dizzy:

点评

我很赞同!: 3.0
我很赞同!: 3
不是两个变量,是两个range...  发表于 2015-9-18 17:49
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-7-5 15:04

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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