鱼C论坛

 找回密码
 立即注册
楼主: 欧拉计划

题目14:找出以100万以下的数字开始的最长序列

[复制链接]
发表于 2018-4-4 10:20:44 | 显示全部楼层
  1. import time


  2. start = time.time()
  3. cntlist = []
  4. for i in range(2, 1000000):
  5.     numlist = [i]
  6.     num = i
  7.     while num != 1:
  8.         if num % 2 == 0:
  9.             num /= 2
  10.         else:
  11.             num = num * 3 + 1
  12.         numlist.append(num)
  13.         if num in numlist:

  14.     cntlist.append(len(numlist))
  15. print max(cntlist)
  16. print time.time() - start
复制代码


十分初级的版本。考虑优化点有2:

1、类似素数筛选法:已经算过的数的2的n次方倍数的数,计数直接+n,结束。
2、维护一个数的序列的表,如果出现某个数在列表内,则计数直接加上列表后面的长度,结束。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-4-4 12:43:27 | 显示全部楼层
  1. (837799, 524)
  2. 2.58100008965
复制代码


优化了一下,速度提高了不少。不过最后的字典里取结果可能慢了。还有优化的空间。代码如下:
  1. import time


  2. def longestCollatz(n=1000001):
  3.     start = time.time()
  4.     collatzdict = {}  #维护一个统一的collatz的统计字典,初始为[2:2]
  5.     numlist = [True] * (n - 1) #默认所有数都未被‘挖掉’, 从2 开始
  6.     for i in range(2, n):
  7.         count = 0
  8.         num = i
  9.         if numlist[i - 2] == True: #若一个数未被挖掉,计算数量
  10.             while num != 1:
  11.                 num = num * 3 + 1 if num % 2 else num / 2
  12.                 count += 1
  13.                 if num in collatzdict: #若计算到某个步骤,产生了已经出现过的数,则直接加上该数的计数,计数结束
  14.                     count += collatzdict[num]
  15.                     break
  16.             collatzdict[i] = count
  17.             numlist[i - 2] = False
  18.             if i < n / 2:             #以i为基数,挖掉i的2的j次方倍的所有的数
  19.                 j = 1
  20.                 while i * pow(2, j) < n:
  21.                     if numlist[i] == True:
  22.                         numlist[i * pow(2, j) - 2] = False #挖掉第i个数2的j次方倍的数
  23.                         collatzdict[i * pow(2, j)] = collatzdict[i] + j
  24.                     j += 1
  25.     print list(sorted(collatzdict.items(), key=lambda x:x[1], reverse=True))[0]
  26.     print time.time() - start


  27. if __name__ == '__main__':
  28.     longestCollatz()
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-4-4 12:57:11 | 显示全部楼层
阿bang 发表于 2018-4-4 12:43
优化了一下,速度提高了不少。不过最后的字典里取结果可能慢了。还有优化的空间。代码如下:
  1. import time


  2. def longestCollatz(n=1000001):
  3.     start = time.time()
  4.     collatzdict = {}  #维护一个统一的collatz的统计字典,初始为[2:2]
  5.     numlist = [True] * (n - 1) #默认所有数都未被‘挖掉’, 从2 开始
  6.     maxnum = 2
  7.     maxcnt = 2
  8.     for i in range(2, n):
  9.         count = 0
  10.         num = i
  11.         if numlist[i - 2] == True: #若一个数未被挖掉,计算数量
  12.             while num != 1:
  13.                 num = num * 3 + 1 if num % 2 else num / 2
  14.                 count += 1
  15.                 if num in collatzdict: #若计算到某个步骤,产生了已经出现过的数,则直接加上该数的计数,计数结束
  16.                     count += collatzdict[num]
  17.                     break
  18.             collatzdict[i] = count
  19.             if count > maxcnt:
  20.                 maxcnt = count
  21.                 maxnum = i
  22.             numlist[i - 2] = False
  23.             if i < n / 2:             #以i为基数,挖掉i的2的j次方倍的所有的数
  24.                 j = 1
  25.                 while i * pow(2, j) < n:
  26.                     if numlist[i] == True:
  27.                         numlist[i * pow(2, j) - 2] = False #挖掉第i个数2的j次方倍的数
  28.                         collatzdict[i * pow(2, j)] = collatzdict[i] + j
  29.                         if collatzdict[i * pow(2, j)] > maxcnt:
  30.                             maxcnt = collatzdict[i * pow(2, j)]
  31.                             maxnum = i * pow(2, j)
  32.                     j += 1


  33.     # print list(sorted(collatzdict.items(), key=lambda x:x[1], reverse=True))[0]
  34.     print maxnum, maxcnt
  35.     print time.time() - start


  36. if __name__ == '__main__':
  37.     longestCollatz()
复制代码


再改了一下,只需要找最大的,不需要最后排序字典的话,会快一点

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

使用道具 举报

发表于 2018-4-7 23:01:23 | 显示全部楼层
  1. The answer is 837799
  2. Its length is 525
  3. Time is 136 ms
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-4-17 16:03:17 | 显示全部楼层
0.80s在此哦~~~~
#include <iostream>
using namespace std;

int main()
{
        int longest = 0;
        int terms = 0;
        int i;
        unsigned long j;

        for (i = 1; i <= 1000000; i++)
        {
                j = i;
                int this_terms = 1;

                while (j != 1)
                {
                        this_terms++;

                        if (this_terms > terms)
                        {
                                terms = this_terms;
                                longest = i;
                        }

                        if (j % 2 == 0)
                        {
                                j = j / 2;
                        }
                        else
                        {
                                j = 3 * j + 1;
                        }
                }
        }

        cout << longest << endl << terms << endl;
        system("pause");
        return 0;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-6-28 05:27:34 | 显示全部楼层
  1. #include <iostream>
  2. #include <cstring>

  3. using namespace std;

  4. int main()
  5. {
  6.         bool dest[1000001];
  7.         long long maxtime=0,maxnum=0,time,num;
  8.         memset(dest,0,1000001);
  9.         dest[1]=1;
  10.         for(int i=1;i<=1000000;++i)
  11.         {
  12.                 if(dest[i]==1)
  13.                         continue;
  14.                 num=i;
  15.                 time=1;
  16.                 while(num!=1)
  17.                 {
  18.                         ++time;
  19.                         if(num<=1000000)
  20.                                 dest[num]=1;
  21.                         if(num%2==0)
  22.                         {
  23.                                 num/=2;
  24.                         }
  25.                         else
  26.                         {
  27.                                 num=num*3+1;
  28.                         }
  29.                 }
  30.                 if(time>maxtime)
  31.                 {
  32.                         maxtime=time;
  33.                         maxnum=i;
  34.                 }
  35.         }
  36.         cout<<"最长的序列数是:"<<maxnum<<' '<<"总共有:"<<maxtime<<"个元素";
  37. }
复制代码

不到1秒
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-10-22 17:11:08 | 显示全部楼层
  1. def Collatz(n):
  2.     t = 0
  3.     while n != 1:
  4.         if n%2 == 0:
  5.             n = n/2
  6.             t += 1
  7.         else:
  8.             n = 3*n + 1
  9.             t += 1
  10.     return t

  11. result = {}
  12. for i in range(1, 1000000):
  13.     result[i] = Collatz(i)

  14. max(result, key = result.get)
复制代码


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

使用道具 举报

发表于 2019-3-24 01:31:03 | 显示全部楼层
  1. count1 = 1
  2. num1 = 1
  3. for n in range(1, 1000001):
  4.     count = 1
  5.     num = n
  6.     while 1:
  7.         if num % 2 == 0:
  8.             num //= 2
  9.             count += 1
  10.         else:
  11.             num = num * 3 + 1
  12.             count += 1
  13.         if num == 1:
  14.             break
  15.     if count >= count1:
  16.         count1 = count
  17.         num1 = n
  18. print(num1)
复制代码


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

使用道具 举报

发表于 2019-4-24 10:29:40 | 显示全部楼层
最大值:525
对应数值:837799
总用时:25.376614736835744

  1. import time


  2. def get_longer(num):
  3.     if num <= 1000000:
  4.         counter = 1
  5.         while num != 1:
  6.             if num % 2:
  7.                 num = num*3 + 1
  8.             else:
  9.                 num = num/2
  10.             counter += 1
  11.         return counter
  12.     else:
  13.         raise ValueError

  14. t1 = time.clock()
  15. num_list = [get_longer(i) for i in range(2, 1000000)]
  16. print("最大值:{} \n对应数值:{} \n总用时:{}".format(max(num_list), num_list.index(max(num_list))+2, time.clock() - t1))
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-4-25 18:44:20 | 显示全部楼层
  1. import time
  2. import math
  3. import functools

  4. def test1():
  5.     max_len = 0
  6.     i = 1000001
  7.    
  8.     while i > 1:
  9.         num = i
  10.         count = 1
  11.         while num != 1:
  12.             if num%2 == 0:
  13.                 num = num//2
  14.             else:
  15.                 num = 3*num + 1
  16.             count += 1
  17.         if max_len < count:
  18.             max_len = count
  19.             max_num = i
  20.         i -= 2
  21.     return max_len,max_num

  22. start = time.perf_counter()

  23. print(test1())
  24. end = time.perf_counter()
  25. print(end-start)
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-19 13:02:33 | 显示全部楼层
本帖最后由 永恒的蓝色梦想 于 2021-2-18 11:51 编辑

C++ 12ms
  1. #include<iostream>

  2. constexpr unsigned int MAX = 1000000;
  3. unsigned short cache[MAX] = { 0, 1 };



  4. unsigned short Collatz(unsigned int num)noexcept {
  5.     if (num < MAX) {
  6.         if (cache[num]) {
  7.             return cache[num];
  8.         }

  9.         if (num & 1) {
  10.             return cache[num] = Collatz((num >> 1) + num + 1) + 2;
  11.         }

  12.         return cache[num] = Collatz(num >> 1) + 1;
  13.     }

  14.     if (num & 1) {
  15.         return Collatz((num >> 1) + num + 1) + 2;
  16.     }

  17.     return Collatz(num >> 1) + 1;
  18. }



  19. int main() {
  20.     using namespace std;
  21.     ios::sync_with_stdio(false);

  22.     unsigned int num, max_num = 0;
  23.     unsigned short len, max_len = 0;


  24.     for (num = 1; num < MAX; num++) {
  25.         if (!cache[num]) {
  26.             if (num & 1) {
  27.                 len = Collatz((num >> 1) + num + 1) + 2;
  28.             }
  29.             else {
  30.                 len = Collatz(num >> 1) + 1;
  31.             }

  32.             if (len > max_len) {
  33.                 max_len = len;
  34.                 max_num = num;
  35.             }
  36.         }
  37.     }


  38.     cout << max_num << endl;
  39.     return 0;
  40. }
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-10 19:01:15 | 显示全部楼层
525 837799
0.788s
  1. #include <stdio.h>
  2. #include <stdlib.h>

  3. #define MAX 1000
  4. #define NUM 1000000

  5. long long odd(long long);
  6. long long even(long long);
  7. void init(long long *);
  8. void Insert(long long *, long long);

  9. void init(long long* array){
  10.     array[0] = 0;
  11. }

  12. void Insert(long long* array, long long e){
  13.     if (array[0] == MAX)
  14.         exit(EXIT_FAILURE);
  15.     array[++array[0]] = e;
  16. }

  17. void execute(long long *array, long long e){
  18.     long long temp = e;
  19.     Insert(array, temp);
  20.     while (temp != 1) {
  21.         if (temp % 2 != 0) {
  22.             temp = odd(temp);
  23.             Insert(array, temp);
  24.         }
  25.         if (temp % 2 == 0) {
  26.             temp = even(temp);
  27.             Insert(array, temp);
  28.         }
  29.     }
  30. }

  31. long long odd(long long num){
  32.     return 3 * num + 1;
  33. }

  34. long long even(long long num){
  35.     return num / 2;
  36. }

  37. int main(void)
  38. {
  39.     int max = 0;
  40.     int maxNum = 0;
  41.     int temp;
  42.     long long array[MAX] = {0};
  43.     for (int i = NUM - 1; i > 1; i-=2) {
  44.         init(array);
  45.         execute(array, i);
  46.         temp = (int)array[0];
  47.         if (max < temp){
  48.             maxNum = i;
  49.             max = temp;
  50.         }
  51.     }

  52.     printf("最大链长: %d, 数字: %d\n", max, maxNum);
  53.    
  54.     return 0;
  55. }
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-6-27 18:07:01 | 显示全部楼层
本帖最后由 永恒的蓝色梦想 于 2020-6-30 18:00 编辑
  1. #include<stdio.h>
  2. #include<stdlib.h>


  3. void main()
  4. {
  5.         int i, k;//定义一个整数变量,从1遍历到一百万
  6.         int t;
  7.         int n = 1;
  8.         int max = 1;
  9.         for (i = 2; i <= 5; i++)
  10.         {
  11.                 t = i;
  12.                 n = 1;
  13.                 while (t != 1)
  14.                 {
  15.                         if (t % 2 == 0)
  16.                         {
  17.                                 t = t / 2;
  18.                                 n++;
  19.                         }
  20.                         else
  21.                         {
  22.                                 t = (t * 3) + 1;
  23.                                 n++;
  24.                         }
  25.                         if (t == 1)
  26.                                 if (n > max)
  27.                                 {
  28.                                         max = n;
  29.                                         k = i;
  30.                                 }
  31.                 }
  32.         }
  33.         printf("%d,%d\n", max, k);



  34.         system("pause");
  35. }
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-10-8 10:49:19 | 显示全部楼层
  1. '''以下迭代序列定义在整数集合上:
  2. n → n/2 (当 n 是偶数时)
  3. n → 3n + 1 (当 n 是奇数时)
  4. 应用以上规则,并且以数字 13 开始,我们得到以下序列:
  5. 13 → 40 → 20 → 10 → 5 → 16 → 8 → 4 → 2 → 1
  6. 可以看出这个以 13 开始以 1 结束的序列包含 10 个项。虽然还没有被证明(Collatz 问题),但是人们认为在这个规则下,以任何数字开始都会以 1 结束。
  7. 以哪个不超过 100 万的数字开始,能给得到最长的序列?
  8. 注意: 一旦序列开始之后,也就是从第二项开始,项是可以超过 100 万的。'''

  9. def longestsequence(num_of_sequence):
  10.     number = 1
  11.     longest = 1
  12.     memory = {}
  13.     while number <= num_of_sequence:
  14.         #print("这是%d的序列:" %number)
  15.         temp = 1
  16.         lonumber = number
  17.         while True:
  18.             if lonumber == 1:
  19.                 #print(lonumber)
  20.                 break
  21.             elif lonumber % 2 == 0:
  22.                 #print(lonumber)
  23.                 lonumber = int(lonumber / 2)
  24.                 temp += 1
  25.                 if memory.__contains__(lonumber):
  26.                     temp += memory[lonumber] - 1
  27.                     break
  28.             elif lonumber % 2 == 1:
  29.                 #print(lonumber)
  30.                 lonumber = 3*lonumber + 1
  31.                 temp += 1
  32.                 if memory.__contains__(lonumber):
  33.                     temp += memory[lonumber] - 1
  34.                     break
  35.         if temp > longest:
  36.             longest = temp
  37.             longestnumber = number
  38.         memory[number] = temp
  39.         number += 1
  40.         #print("--------")

  41.     print("在不超过%d的数字中,能得到最长序列的数字是%d" %(num_of_sequence,longestnumber))
  42.     print("该数字序列量为: %d" %longest)
  43.     #print(memory)

  44. start_longestsequence = time.time()
  45. longestsequence(1000000)
  46. time_longestsequence = time.time() - start_longestsequence
  47. print("%f秒" %time_longestsequence)
复制代码



在不超过1000000的数字中,能得到最长序列的数字是837799
该数字序列量为: 525
2.077740秒

做一个字典去存储已经计算过的序列,之后再遇到那一段同样的序列就可以直接加上已储存的值,这个方法把整个程序从33秒提升到2秒
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-11-5 19:57:15 | 显示全部楼层
def f():
    record = []
    for n in range(13,14):
        count = 1
        while  1 :
            if n % 2 == 0:
                n = n // 2

                count += 1
            if n % 2 != 0 and n > 1:
                n = 3 * n + 1
                count += 1
            if n == 1:
                count
                #print (count)
                break
        record.append(count)
        count = 1
    return max(record)




print (f())
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-8-13 23:46:01 | 显示全部楼层
  1. #include <stdio.h>
  2. #include <math.h>

  3. static int flag;//计数器

  4. int Collatz2(long long int value){//2、非递归
  5.         int count = 0;
  6.         while(value > 1){
  7.                 flag++;
  8.                 value = (value%2)?value * 3 + 1: value / 2;
  9.                 count += 1;
  10.         }
  11.         return count + 1;
  12. }

  13. int main(void)
  14. {
  15.         int i;
  16.         int max_Collatz_num;
  17.         int max;
  18.         int temp;

  19.         for(i=1;i<1000000;i++){
  20.                 temp = Collatz2(i);
  21.                 if (temp > max){
  22.                         max = temp;
  23.                         max_Collatz_num = i;
  24.                 }
  25.         }

  26.         printf("max_Collatz_num = %d, count = %d\n", max_Collatz_num, Collatz2(max_Collatz_num));
  27.         printf("flag = %d\n", flag);

  28.         return 0;
  29. }
  30. //max_Collatz_num = 837799, count = 525
  31. //flag = 131434796
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-10-13 13:09:09 | 显示全部楼层
FlySelf 发表于 2017-2-7 11:24
执行结果:
[837799, 525]
程序执行了3.018928s。

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

使用道具 举报

发表于 2021-10-29 10:50:39 | 显示全部楼层
  1. #include<stdio.h>

  2. #define MAX  1000000

  3. typedef unsigned int   UINT;
  4. int len = 0;

  5. int Odd_or_Even(UINT);

  6. int main(void)
  7. {
  8.         unsigned int Max_len = 0,Max_num = 0;
  9.        
  10.         for(int i = 1;i < max;i++)
  11.         {
  12.                 len = 0;
  13.                 Odd_or_Even(i);
  14.                 if(Max_len < len )
  15.                 {
  16.                         Max_len = len;
  17.                         Max_num = i;
  18.                 }
  19.         }
  20.        
  21.         printf("%d,%d",Max_len,Max_num);
  22.        
  23.         return 0;
  24. }

  25. int Odd_or_Even(UINT num)
  26. {
  27.         len ++;       
  28.        
  29.         if(num == 1)
  30.                 return 1;
  31.         else
  32.         {
  33.                 if(num % 2 ==0)
  34.                         Odd_or_Even((num / 2));
  35.                 else
  36.                         Odd_or_Even((num * 3 + 1));
  37.         }
  38.        
  39.         return 0;
  40. }
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-1-2 18:57:46 | 显示全部楼层
本帖最后由 guosl 于 2022-1-2 19:03 编辑
  1. /*
  2. 答案:837799
  3. 耗时:0.411748秒(单核)
  4.       0.0373096秒(八核)
  5. */
  6. #include <iostream>
  7. #include <omp.h>
  8. using namespace std;

  9. const int N = 1000000;

  10. int main(void)
  11. {
  12.   volatile int nMaxLen = 0, nVal = 0;
  13. #pragma omp parallel for shared(nMaxLen,nVal) schedule(dynamic,16)
  14.   for (int i = 1; i <= N; ++i)
  15.   {
  16.     int nStep = 1;
  17.     long long l = i;
  18.     while (l != 1LL)
  19.     {
  20.       if (l % 2LL == 0)
  21.         l = l >> 1;
  22.       else
  23.         l = 3LL * l + 1LL;
  24.       ++nStep;
  25.     }
  26.     if (nStep > nMaxLen)
  27.     {
  28. #pragma omp critical
  29.       {
  30.         nMaxLen = nStep;
  31.         nVal = i;
  32.       }
  33.     }
  34.   }
  35.   cout << nVal << endl;
  36.   return 0;
  37. }
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-2-24 21:36:24 | 显示全部楼层
  1. package main

  2. import (
  3.         "fmt"
  4.         "time"
  5. )

  6. //题目14:
  7. //
  8. //以下迭代序列定义在整数集合上:
  9. //
  10. //n → n/2 (当 n 是偶数时)
  11. //n → 3n + 1 (当 n 是奇数时)
  12. //
  13. //应用以上规则,并且以数字 13 开始,我们得到以下序列:
  14. //
  15. //13 → 40 → 20 → 10 → 5 → 16 → 8 → 4 → 2 → 1
  16. //
  17. //可以看出这个以 13 开始以 1 结束的序列包含 10 个项。虽然还没有被证明(Collatz 问题),但是人们认为在这个规则下,以任何数字开始都会以 1 结束。
  18. //
  19. //以哪个不超过 100 万的数字开始,能给得到最长的序列?
  20. //
  21. //注意: 一旦序列开始之后,也就是从第二项开始,项是可以超过 100 万的。

  22. var n = map[int64]int64{
  23.         1: 1,
  24.         2: 2,
  25. }

  26. func If(b bool, vt int64, vf int64) int64 {
  27.         if b == true {
  28.                 return vt
  29.         } else {
  30.                 return vf
  31.         }
  32. }

  33. func loop(a int64) int64 {
  34.         t := a
  35.         var c int64 = 0
  36.         for n[t] == 0 {
  37.                 t = If(t%2 == 0, t/2, t*3+1)
  38.                 c++
  39.         }
  40.         n[a] = n[t] + c
  41.         t = If(a%2 == 0, a/2, a*3+1)
  42.         p := a
  43.         for n[t] == 0 {
  44.                 n[t] = n[p] - 1
  45.                 p = t
  46.                 t = If(a%2 == 0, a/2, a*3+1)
  47.         }
  48.         return n[a]
  49. }

  50. func main() {
  51.         t := time.Now()
  52.         var i int64
  53.         for i = 3; i < 1000000; i++ {
  54.                 _ = loop(i)
  55.         }
  56.         var max = map[string]int64{
  57.                 "key":   1,
  58.                 "value": 1,
  59.         }
  60.         for key, value := range n {
  61.                 if value > max["value"] {
  62.                         max["value"] = value
  63.                         max["key"] = key
  64.                 }
  65.         }
  66.         fmt.Println(max)
  67.         tt := time.Now()
  68.         fmt.Println("耗时:", (tt.Nanosecond()-t.Nanosecond())/1e6, "ms")
  69. }
复制代码

输出:
  1. map[key:837799 value:525]
  2. 耗时: 309 ms
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-20 21:08

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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