鱼C论坛

 找回密码
 立即注册
查看: 2953|回复: 13

[已解决]如何优化此代码,当N非常大时,程序运行时间不能超过2s

[复制链接]
发表于 2022-10-23 16:08:16 | 显示全部楼层 |阅读模式

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

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

x
编写程序求11/2-21/2+31/2-41/2+...+N1/2
  1.     n=int(input())
  2.     s=0
  3.     i=1
  4.     for i in range(1,n+1):
  5.         if i%2==1:
  6.             s+=i**0.5
  7.         else:
  8.             s-=i**0.5
  9.     print(f'{s:.6f}')
复制代码
最佳答案
2022-10-27 10:27:44
  1. sh-5.1$ ls
  2. main.py  main.s
  3. sh-5.1$ cat main.py
  4. #!/usr/bin/env python
  5. #coding=utf-8

  6. import ctypes

  7. dll = ctypes.cdll.LoadLibrary('./main.so')
  8. dll.main()
  9. print('ok')
  10. sh-5.1$ cat main.s
  11.     .section .text
  12.     .global _start
  13. _start:
  14.     callq   main

  15.     # 调用exit系统调用退出程序
  16.     movq    $60, %rax   # sys_exit
  17.     movq    $0, %rdi    # status
  18.     syscall
  19.     retq

  20.     .global main
  21. main:
  22.     # 调用read系统调用
  23.     # 从标准输入读取一个数字,是字符串类型的
  24.     # 存储到buff中
  25.     movq    $0, %rax            # sys_read
  26.     movq    $0, %rdi            # stdin
  27.     leaq    buff(%rip), %rsi    # buff
  28.     movq    $1024, %rdx         # count
  29.     syscall

  30.     # 下面把buff中的字符串转换成数字
  31.     decq    %rax        # '\n'
  32.     movq    %rax, %rcx
  33.     xorq    %rax, %rax
  34.     movq    $10, %rdi
  35. 1:  mulq    %rdi            # rax *= 10
  36.     movzbq  (%rsi), %rdx    # dl = *(%rsi)
  37.     incq    %rsi
  38.     subq    $'0', %rdx
  39.     addq    %rdx, %rax
  40.     decq    %rcx
  41.     cmpq    $0, %rcx
  42.     jg      1b
  43.     movq    %rax, %r8

  44.     # 下面计算表达式的值
  45.     movq    $1, %rcx
  46.     fldz
  47. 2:  movq    %rcx, temp(%rip)
  48.     fildq   temp(%rip)
  49.     fsqrt               # i的0.5次方就是对i开方
  50.     fst     %st(2)
  51.     fchs
  52.     testq   $1, %rcx
  53.     fcmovne %st(2), %st(0)
  54.     faddp
  55.     incq    %rcx
  56.     cmpq    %r8, %rcx
  57.     jng     2b
  58.     ffree   %st(1)

  59.     # 下面把计算结果转换成字符串
  60.     # 首先判断浮点数是不是负数
  61.     # 如果是负数的话,要在字符串最前面加 '-'
  62.     leaq    buff(%rip), %rsi
  63.     movb    $'-', (%rsi)
  64.     leaq    1(%rsi), %rax
  65.     fldz
  66.     fcomip  %st(1), %st(0)
  67.     cmovaq  %rax, %rsi

  68.     # 然后把整数部分和小数部分分开
  69.     fld     %st(0)
  70.     fisttpq temp(%rip)
  71.     fildq   temp(%rip)
  72.     fsubrp
  73.     fabs
  74.     fildq   temp(%rip)
  75.     fabs

  76.     # 接下来处理整数部分
  77. 3:  fld     %st(0)
  78.     movq    $10, temp(%rip)
  79.     fildq   temp(%rip)
  80.     fxch
  81.     fprem
  82.     fisttpq temp(%rip)
  83.     movb    temp(%rip), %al
  84.     addb    $'0', %al
  85.     movb    %al, (%rsi)
  86.     incq    %rsi
  87.     fdivrp
  88.     fisttpq temp(%rip)
  89.     fildq   temp(%rip)
  90.     cmpq    $0, temp(%rip)
  91.     ja      3b
  92.     fisttpq temp(%rip)

  93.     # 上面弄出来的整数部分顺序是反的
  94.     # 这里反序整数部分
  95.     leaq    buff(%rip), %rbx
  96.     leaq    1(%rbx), %rax
  97.     cmpb    $'-', (%rbx)
  98.     cmoveq  %rax, %rbx
  99.     leaq    -1(%rsi), %rdi
  100. 4:  movb    (%rbx), %al
  101.     movb    (%rdi), %ah
  102.     movb    %al, (%rdi)
  103.     movb    %ah, (%rbx)
  104.     incq    %rbx
  105.     decq    %rdi
  106.     cmpq    %rbx, %rdi
  107.     ja      4b

  108.     # 下面处理小数部分
  109.     # 保留小数点后15位
  110.     movb    $'.', (%rsi)
  111.     incq    %rsi
  112.     movq    $15, %rcx
  113.     movq    $10, temp(%rip)
  114.     fildq   temp(%rip)
  115.     fxch
  116. 5:  fmul    %st(1), %st(0)
  117.     fld     %st(0)
  118.     fisttpq temp(%rip)
  119.     movb    temp(%rip), %al
  120.     addb    $'0', %al
  121.     movb    %al, (%rsi)
  122.     incq    %rsi
  123.     fildq   temp(%rip)
  124.     fsubrp
  125.     decq    %rcx
  126.     cmpq    $0, %rcx
  127.     ja      5b

  128.     # 字符串最后加一个 '\n'
  129.     movb    $'\n', (%rsi)
  130.     incq    %rsi

  131.     # 调用write系统调用输出字符串
  132.     movq    $1, %rax            # sys_write
  133.     movq    $1, %rdi            # stdout
  134.     movq    %rsi, %rdx
  135.     leaq    buff(%rip), %rsi    # buff
  136.     subq    %rsi, %rdx          # count
  137.     syscall
  138.     retq

  139.     .section .bss
  140. buff:   .zero 1024
  141. temp:   .zero 8
  142. sh-5.1$ as -O3 -g -o main.o main.s
  143. sh-5.1$ ld -shared -o main.so main.o
  144. sh-5.1$ ls
  145. main.o        main.py  main.s  main.so
  146. sh-5.1$ time ./main.py <<EOF
  147. > 999999999
  148. > EOF
  149. 15811.768401701640368
  150. ok

  151. real        0m2.360s
  152. user        0m2.348s
  153. sys        0m0.007s
  154. sh-5.1$
复制代码
屏幕截图 2022-10-23 160155.png
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2022-10-23 16:14:21 | 显示全部楼层
       这个如何?
  1. n , s , k = int(input()) , 0 , 1
  2. for i in range(1 , n + 1) :
  3.     s , k = s + k * i ** 0.5 , -k
  4. print(f'{s:.6f}')
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-10-23 16:21:36 | 显示全部楼层

还是超了2s
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-10-23 16:24:03 | 显示全部楼层


        这还能有什么好办法?也许改用数学库可以快一点?
  1. import math
  2. n , s , k = int(input()) , 0 , 1
  3. for i in range(1 , n + 1) :
  4.     s , k = s + k * math . sqrt(i) , -k
  5. print(f'{s:.6f}')
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-10-23 16:25:34 | 显示全部楼层
这个可以么
  1. n = int(input())
  2. print(sum((i**0.5)*((-1)**(i+1)) for i in range(1, n+1)))
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-10-23 16:25:59 | 显示全部楼层
jackz007 发表于 2022-10-23 16:24
这还能有什么好办法?也许改用数学库可以快一点?

比刚才那个还慢了点
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-10-23 16:30:24 | 显示全部楼层

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

使用道具 举报

发表于 2022-10-23 16:44:03 | 显示全部楼层

        用 numpy . sqrt() 试试看
  1. import numpy as np

  2. n , s , k = int(input()) , 0 , 1
  3. for i in range(1 , n + 1) :
  4.     s , k = s + k * np . sqrt(i) , -k
  5. print('%.6f' % s)
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-10-23 16:54:05 | 显示全部楼层
没看到要保留6位小数
这个可以么
  1. n = int(input())
  2. print("{:.6f}".format(sum((i**0.5)*((-1)**(i+1)) for i in range(1, n+1))))
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-10-23 17:42:57 | 显示全部楼层
用 C 可能比较快,Python 想优化只能从数学知识下手了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-10-24 10:27:08 | 显示全部楼层
8个9,一个是2秒多,一个是20秒多,差不多10倍

  1. sh-5.1$ ls
  2. main.py  n.c  n.py
  3. sh-5.1$ cat main.py
  4. #!/usr/bin/env python
  5. #coding=utf-8

  6. n=int(input())
  7. s=0
  8. i=1
  9. for i in range(1,n+1):
  10.     if i%2==1:
  11.         s+=i**0.5
  12.     else:
  13.         s-=i**0.5
  14. print(f'{s:.6f}')
  15. sh-5.1$ cat n.py
  16. #!/usr/bin/env python
  17. #coding=utf-8

  18. import ctypes

  19. dll = ctypes.cdll.LoadLibrary('./n.so')
  20. dll.get_n.restype = ctypes.c_double
  21. print(dll.get_n())
  22. sh-5.1$ cat n.c
  23. #include <stdio.h>
  24. #include <math.h>

  25. double get_n(void) {
  26.     size_t n; scanf("%zu", &n);
  27.     double s = 0;
  28.     for(size_t i = 1; i <= n; ++i) {
  29.         double x = pow(i, 0.5);
  30.         s += i % 2 == 0 ? -x : x;
  31.     }
  32.     return s;
  33. }
  34. sh-5.1$ gcc -O3 -g -Wall -shared -o n.so n.c
  35. sh-5.1$ ls
  36. main.py  n.c  n.py  n.so
  37. sh-5.1$ file n.so
  38. n.so: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, BuildID[sha1]=d1b953da2900940d00f2e88bccc7030d706cf4cf, with debug_info, not stripped
  39. sh-5.1$ time ./main.py <<EOF
  40. > 99999999
  41. > EOF
  42. 5000.380092

  43. real        0m20.452s
  44. user        0m20.384s
  45. sys        0m0.024s
  46. sh-5.1$ time ./n.py <<EOF
  47. 99999999
  48. EOF
  49. 5000.380092309442

  50. real        0m2.093s
  51. user        0m2.077s
  52. sys        0m0.010s
  53. sh-5.1$
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-10-27 02:43:24 | 显示全部楼层
花了几天时间,现学现卖,用64位汇编语言写了一遍
9个9,c要21秒多,汇编语言要2秒多
21.080 / 2.429 = 8.678
8.678 倍

20.384 / 2.077 = 9.814
c和python是 9.814 倍
什么概念呢?就是说汇编语言算2秒,python要算170多秒,就是这个概念,^_^
没有多次运行取平均值什么的,就是简单的看了看
汇编语言版本的是真的不好写
到此为止了,不玩了

  1. sh-5.1$ ls
  2. main.c        main.s        old
  3. sh-5.1$ cat main.c
  4. #include <stdio.h>
  5. #include <math.h>

  6. double get_n(void) {
  7.     size_t n; scanf("%zu", &n);
  8.     double s = 0;
  9.     for(size_t i = 1; i <= n; ++i) {
  10.         double x = pow(i, 0.5);
  11.         s += i % 2 == 0 ? -x : x;
  12.     }
  13.     return s;
  14. }

  15. int main(void) {
  16.     printf("%f\n", get_n());
  17.     return 0;
  18. }
  19. sh-5.1$ cat main.s
  20.     .section .text
  21.     .global _start
  22. _start:
  23.     # 调用read系统调用
  24.     # 从标准输入读取一个数字,是字符串类型的
  25.     # 存储到buff中
  26.     movq    $0, %rax            # sys_read
  27.     movq    $0, %rdi            # stdin
  28.     leaq    buff(%rip), %rsi    # buff
  29.     movq    $1024, %rdx         # count
  30.     syscall

  31.     # 下面把buff中的字符串转换成数字
  32.     decq    %rax        # '\n'
  33.     movq    %rax, %rcx
  34.     xorq    %rax, %rax
  35.     movq    $10, %rdi
  36. 1:  mulq    %rdi            # rax *= 10
  37.     movzbq  (%rsi), %rdx    # dl = *(%rsi)
  38.     incq    %rsi
  39.     subq    $'0', %rdx
  40.     addq    %rdx, %rax
  41.     decq    %rcx
  42.     cmpq    $0, %rcx
  43.     jg      1b
  44.     movq    %rax, %r8

  45.     # 下面计算表达式的值
  46.     movq    $1, %rcx
  47.     fldz
  48. 2:  movq    %rcx, temp(%rip)
  49.     fildq   temp(%rip)
  50.     fsqrt               # i的0.5次方就是对i开方
  51.     fst     %st(2)
  52.     fchs
  53.     testq   $1, %rcx
  54.     fcmovne %st(2), %st(0)
  55.     faddp
  56.     incq    %rcx
  57.     cmpq    %r8, %rcx
  58.     jng     2b
  59.     ffree   %st(1)

  60.     # 下面把计算结果转换成字符串
  61.     # 首先判断浮点数是不是负数
  62.     # 如果是负数的话,要在字符串最前面加 '-'
  63.     leaq    buff(%rip), %rsi
  64.     movb    $'-', (%rsi)
  65.     leaq    1(%rsi), %rax
  66.     fldz
  67.     fcomip  %st(1), %st(0)
  68.     cmovaq  %rax, %rsi

  69.     # 然后把整数部分和小数部分分开
  70.     fld     %st(0)
  71.     fisttpq temp(%rip)
  72.     fildq   temp(%rip)
  73.     fsubrp
  74.     fabs
  75.     fildq   temp(%rip)
  76.     fabs

  77.     # 接下来处理整数部分
  78. 3:  fld     %st(0)
  79.     movq    $10, temp(%rip)
  80.     fildq   temp(%rip)
  81.     fxch
  82.     fprem
  83.     fisttpq temp(%rip)
  84.     movb    temp(%rip), %al
  85.     addb    $'0', %al
  86.     movb    %al, (%rsi)
  87.     incq    %rsi
  88.     fdivrp
  89.     fisttpq temp(%rip)
  90.     fildq   temp(%rip)
  91.     cmpq    $0, temp(%rip)
  92.     ja      3b
  93.     fisttpq temp(%rip)

  94.     # 上面弄出来的整数部分顺序是反的
  95.     # 这里反序整数部分
  96.     leaq    buff(%rip), %rbx
  97.     leaq    1(%rbx), %rax
  98.     cmpb    $'-', (%rbx)
  99.     cmoveq  %rax, %rbx
  100.     leaq    -1(%rsi), %rdi
  101. 4:  movb    (%rbx), %al
  102.     movb    (%rdi), %ah
  103.     movb    %al, (%rdi)
  104.     movb    %ah, (%rbx)
  105.     incq    %rbx
  106.     decq    %rdi
  107.     cmpq    %rbx, %rdi
  108.     ja      4b

  109.     # 下面处理小数部分
  110.     # 保留小数点后15位
  111.     movb    $'.', (%rsi)
  112.     incq    %rsi
  113.     movq    $15, %rcx
  114.     movq    $10, temp(%rip)
  115.     fildq   temp(%rip)
  116.     fxch
  117. 5:  fmul    %st(1), %st(0)
  118.     fld     %st(0)
  119.     fisttpq temp(%rip)
  120.     movb    temp(%rip), %al
  121.     addb    $'0', %al
  122.     movb    %al, (%rsi)
  123.     incq    %rsi
  124.     fildq   temp(%rip)
  125.     fsubrp
  126.     decq    %rcx
  127.     cmpq    $0, %rcx
  128.     ja      5b

  129.     # 字符串最后加一个 '\n'
  130.     movb    $'\n', (%rsi)
  131.     incq    %rsi

  132.     # 调用write系统调用输出字符串
  133.     movq    $1, %rax            # sys_write
  134.     movq    $1, %rdi            # stdout
  135.     movq    %rsi, %rdx
  136.     leaq    buff(%rip), %rsi    # buff
  137.     subq    %rsi, %rdx          # count
  138.     syscall

  139.     # 调用exit系统调用退出程序
  140.     movq    $60, %rax   # sys_exit
  141.     movq    $0, %rdi    # status
  142.     syscall
  143.     retq

  144.     .section .bss
  145. buff:   .zero 1024
  146. temp:   .zero 8
  147. sh-5.1$ gcc -O3 -g -Wall -o c main.c -lm
  148. sh-5.1$ as -O3 -g -o asm.o main.s
  149. sh-5.1$ ld -o asm asm.o
  150. sh-5.1$ ls
  151. asm  asm.o  c  main.c  main.s  old
  152. sh-5.1$ time ./c <<EOF
  153. > 999999999
  154. > EOF
  155. 15811.768402

  156. real        0m20.280s
  157. user        0m20.241s
  158. sys        0m0.004s
  159. sh-5.1$ time ./asm <<EOF
  160. 999999999
  161. EOF
  162. 15811.768401701640368

  163. real        0m2.343s
  164. user        0m2.332s
  165. sys        0m0.004s
  166. sh-5.1$ time ./c <<EOF
  167. 999999999
  168. EOF
  169. 15811.768402

  170. real        0m21.210s
  171. user        0m21.080s
  172. sys        0m0.020s
  173. sh-5.1$ time ./asm <<EOF
  174. 999999999
  175. EOF
  176. 15811.768401701640368

  177. real        0m2.476s
  178. user        0m2.429s
  179. sys        0m0.007s
  180. sh-5.1$
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-10-27 10:27:44 | 显示全部楼层    本楼为最佳答案   
  1. sh-5.1$ ls
  2. main.py  main.s
  3. sh-5.1$ cat main.py
  4. #!/usr/bin/env python
  5. #coding=utf-8

  6. import ctypes

  7. dll = ctypes.cdll.LoadLibrary('./main.so')
  8. dll.main()
  9. print('ok')
  10. sh-5.1$ cat main.s
  11.     .section .text
  12.     .global _start
  13. _start:
  14.     callq   main

  15.     # 调用exit系统调用退出程序
  16.     movq    $60, %rax   # sys_exit
  17.     movq    $0, %rdi    # status
  18.     syscall
  19.     retq

  20.     .global main
  21. main:
  22.     # 调用read系统调用
  23.     # 从标准输入读取一个数字,是字符串类型的
  24.     # 存储到buff中
  25.     movq    $0, %rax            # sys_read
  26.     movq    $0, %rdi            # stdin
  27.     leaq    buff(%rip), %rsi    # buff
  28.     movq    $1024, %rdx         # count
  29.     syscall

  30.     # 下面把buff中的字符串转换成数字
  31.     decq    %rax        # '\n'
  32.     movq    %rax, %rcx
  33.     xorq    %rax, %rax
  34.     movq    $10, %rdi
  35. 1:  mulq    %rdi            # rax *= 10
  36.     movzbq  (%rsi), %rdx    # dl = *(%rsi)
  37.     incq    %rsi
  38.     subq    $'0', %rdx
  39.     addq    %rdx, %rax
  40.     decq    %rcx
  41.     cmpq    $0, %rcx
  42.     jg      1b
  43.     movq    %rax, %r8

  44.     # 下面计算表达式的值
  45.     movq    $1, %rcx
  46.     fldz
  47. 2:  movq    %rcx, temp(%rip)
  48.     fildq   temp(%rip)
  49.     fsqrt               # i的0.5次方就是对i开方
  50.     fst     %st(2)
  51.     fchs
  52.     testq   $1, %rcx
  53.     fcmovne %st(2), %st(0)
  54.     faddp
  55.     incq    %rcx
  56.     cmpq    %r8, %rcx
  57.     jng     2b
  58.     ffree   %st(1)

  59.     # 下面把计算结果转换成字符串
  60.     # 首先判断浮点数是不是负数
  61.     # 如果是负数的话,要在字符串最前面加 '-'
  62.     leaq    buff(%rip), %rsi
  63.     movb    $'-', (%rsi)
  64.     leaq    1(%rsi), %rax
  65.     fldz
  66.     fcomip  %st(1), %st(0)
  67.     cmovaq  %rax, %rsi

  68.     # 然后把整数部分和小数部分分开
  69.     fld     %st(0)
  70.     fisttpq temp(%rip)
  71.     fildq   temp(%rip)
  72.     fsubrp
  73.     fabs
  74.     fildq   temp(%rip)
  75.     fabs

  76.     # 接下来处理整数部分
  77. 3:  fld     %st(0)
  78.     movq    $10, temp(%rip)
  79.     fildq   temp(%rip)
  80.     fxch
  81.     fprem
  82.     fisttpq temp(%rip)
  83.     movb    temp(%rip), %al
  84.     addb    $'0', %al
  85.     movb    %al, (%rsi)
  86.     incq    %rsi
  87.     fdivrp
  88.     fisttpq temp(%rip)
  89.     fildq   temp(%rip)
  90.     cmpq    $0, temp(%rip)
  91.     ja      3b
  92.     fisttpq temp(%rip)

  93.     # 上面弄出来的整数部分顺序是反的
  94.     # 这里反序整数部分
  95.     leaq    buff(%rip), %rbx
  96.     leaq    1(%rbx), %rax
  97.     cmpb    $'-', (%rbx)
  98.     cmoveq  %rax, %rbx
  99.     leaq    -1(%rsi), %rdi
  100. 4:  movb    (%rbx), %al
  101.     movb    (%rdi), %ah
  102.     movb    %al, (%rdi)
  103.     movb    %ah, (%rbx)
  104.     incq    %rbx
  105.     decq    %rdi
  106.     cmpq    %rbx, %rdi
  107.     ja      4b

  108.     # 下面处理小数部分
  109.     # 保留小数点后15位
  110.     movb    $'.', (%rsi)
  111.     incq    %rsi
  112.     movq    $15, %rcx
  113.     movq    $10, temp(%rip)
  114.     fildq   temp(%rip)
  115.     fxch
  116. 5:  fmul    %st(1), %st(0)
  117.     fld     %st(0)
  118.     fisttpq temp(%rip)
  119.     movb    temp(%rip), %al
  120.     addb    $'0', %al
  121.     movb    %al, (%rsi)
  122.     incq    %rsi
  123.     fildq   temp(%rip)
  124.     fsubrp
  125.     decq    %rcx
  126.     cmpq    $0, %rcx
  127.     ja      5b

  128.     # 字符串最后加一个 '\n'
  129.     movb    $'\n', (%rsi)
  130.     incq    %rsi

  131.     # 调用write系统调用输出字符串
  132.     movq    $1, %rax            # sys_write
  133.     movq    $1, %rdi            # stdout
  134.     movq    %rsi, %rdx
  135.     leaq    buff(%rip), %rsi    # buff
  136.     subq    %rsi, %rdx          # count
  137.     syscall
  138.     retq

  139.     .section .bss
  140. buff:   .zero 1024
  141. temp:   .zero 8
  142. sh-5.1$ as -O3 -g -o main.o main.s
  143. sh-5.1$ ld -shared -o main.so main.o
  144. sh-5.1$ ls
  145. main.o        main.py  main.s  main.so
  146. sh-5.1$ time ./main.py <<EOF
  147. > 999999999
  148. > EOF
  149. 15811.768401701640368
  150. ok

  151. real        0m2.360s
  152. user        0m2.348s
  153. sys        0m0.007s
  154. sh-5.1$
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-10-27 15:57:32 | 显示全部楼层

虽然看不懂,但是看出了你很牛
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-4-26 00:19

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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