第11周 项目6-回文.素数(3)

本文介绍了一个简单的C++程序,该程序包含一个名为isprimer()的函数,用于判断输入的整数是否为素数。通过循环遍历的方式检查除1和自身外是否有其他因数。
/* 
 * Copyright (c) 2014, 烟台大学计算机学院 
 * All rights reserved. 
 * 文件名称:test.cpp 
 * 作    者:呼亚萍 
 * 完成日期:2014年 11 月 10 日 
 * 版 本 号:v1.0 
 * 
 * 问题描述:编制一个返回值为bool型的函数isprimer(),用于判断参数是否为素数
 * 输入描述:一个参数
 * 程序输出:判断参数是否为素数 
 */

#include <iostream>
using namespace std;
bool isprimer(int n);
int main()
{
    int n;
    cin>> n;
    if (isprimer(n))
        cout<<"素数是:"<<n<<endl;
        else
            cout<<n<<"不是素数"<<endl;
    return 0;
}
bool isprimer(int n)
{
    bool isprimer=true;
    int k=n;
    for(int i=2; i<k; ++i)
    {
        if(n%i==0)
            isprimer=false;
    }
    return isprimer;
}


运算结果:

知识点总结:

当单独定义自定义函数时,需要写函数类型,如bool,求素数时,可以使用循环语句,

学习心得:

接受自己不会的东西,好好学习,加油!

基于可靠性评估序贯蒙特卡洛模拟法的配电网可靠性评估研究(Matlab代码实现)内容概要:本文围绕“基于可靠性评估序贯蒙特卡洛模拟法的配电网可靠性评估研究”,介绍了利用Matlab代码实现配电网可靠性的仿真分析方法。重点采用序贯蒙特卡洛模拟法对配电网进行长时间段的状态抽样与统计,通过模拟系统元件的故障与修复过程,评估配电网的关键可靠性指标,如系统停电频率、停电持续时间、负荷点可靠性等。该方法能够有效处理复杂网络结构与设备时序特性,提升评估精度,适用于含分布式电源、电动汽车等新型负荷接入的现代配电网。文中提供了完整的Matlab实现代码与案例分析,便于复现和扩展应用。; 适合人群:具备电力系统基础知识和Matlab编程能力的高校研究生、科研人员及电力行业技术人员,尤其适合从事配电网规划、运行与可靠性分析相关工作的人员; 使用场景及目标:①掌握序贯蒙特卡洛模拟法在电力系统可靠性评估中的基本原理与实现流程;②学习如何通过Matlab构建配电网仿真模型并进行状态转移模拟;③应用于含新能源接入的复杂配电网可靠性定量评估与优化设计; 阅读建议:建议结合文中提供的Matlab代码逐段调试运行,理解状态抽样、故障判断、修复逻辑及指标统计的具体实现方式,同时可扩展至不同网络结构或加入更多不确定性因素进行深化研究。
<think> 题目要求输出的是“回文孪生素数对”,但之前讨论的是“反素数(emirp)”。这里需要明确概念: 回文孪生素数对:应该是指一对孪生素数(即相差为2的两个素数),并且这两个素数都是回文素数?还是指孪生素数对中的两个数互为回文数?但通常孪生素数对是两个素数,而回文素数是指一个素数本身是回文数。所以这里可能有两种理解: 根据题目描述:“回文孪生素数对”,我分析应该是:一对孪生素数素数p和p+2),并且这两个素数都是回文素数。 但注意:孪生素数对的两个数不一定都是回文素数。所以我们需要找同时满足两个条件的: 1. 是孪生素数对(即p和p+2都是素数,且相差2) 2. 这两个素数都必须是回文素数(即p和p+2都是回文素数) 然而,这里有一个问题:回文素数要求这个素数本身是回文数。例如:11, 101, 131等。 另外,题目要求输出k个大于等于n的孪生素数对(注意:孪生素数对中较小的那个素数>=n)。 因此,我们需要: 1. 判断素数 2. 判断回文数(注意:回文数是指正反读都一样的数,如121,131等) 3. 同时,我们还需要检查一对素数(p和p+2)是否都是回文素数。 注意:题目中n和k都是不超过100的正整数,所以输出的孪生素数对的数量k最多100,而n最大100,所以我们要找的孪生素数对不会太大(因为k最大100,所以我们可以逐个检查)。 但是,有一个问题:回文素数在自然数中并不密集,而孪生素数对也是稀疏的,所以组合起来可能会比较大。不过n不超过100,k也不超过100,所以我们可以从n开始向上搜索,直到找到k对。 具体步骤: 1. 从t=n开始(t表示孪生素数对中较小的那个数),逐个增加t。 2. 检查t和t+2是否都是素数(孪生素数的条件) 3. 检查t和t+2是否都是回文数(回文素数的条件,注意素数我们已经检查了,所以只需要检查回文数) 注意:回文数的判断可以通过反转数字后比较是否相等。 例如:判断回文数函数: int is_palindrome(int num) { // 将num反转,得到reverse_num // 比较num和reverse_num是否相等 } 但是注意:题目要求的是“回文孪生素数对”,所以两个数都必须同时是回文素数和孪生素数。 另外,注意特殊情况:2和3不是孪生素数(因为3-2=1≠2),孪生素数对从(3,5)开始。 回文数的判断中,注意一位数都是回文数(如2,3,5,7等),但是一位数的素数也是回文素数。 孪生素数对中,两个数都是奇数(除了(3,5)以外,其他孪生素数对中两个数都是奇数),所以我们可以跳过偶数。 算法流程: 初始化count=0,从t=n开始,直到找到k对为止: 如果t是素数,并且t+2也是素数,并且t是回文数,并且t+2是回文数,则输出(t, t+2),count++。 然后t++(注意:因为孪生素数对中两个数都是奇数,所以t每次可以增加2?但是注意,我们并不知道n是奇数还是偶数,所以还是逐个检查。但我们可以跳过偶数:如果t是偶数,则跳过,因为t和t+2中t为偶数则大于2的偶数不是素数。所以我们可以从奇数开始,并且每次增加2(除了初始时可能是偶数需要调整)) 优化:我们可以先判断t是否是偶数,如果是偶数,则t++(变为奇数)开始。然后每次增加2。 步骤: 1. 输入n, k。 2. 如果n是偶数,则从n+1开始(因为孪生素数对中较小的必须是奇数),否则从n开始(奇数)。 3. 设置步长为2(只检查奇数)。 4. 循环直到找到k对: 检查t和t+2是否都是素数(使用is_prime函数) 检查t和t+2是否都是回文数(使用is_palindrome函数) 如果都是,则输出,并计数;否则t+=2 但是注意:当t=1时,1不是素数,跳过;t=3时,3和5都是素数,且3和5都是回文数(一位数)?是的。 回文数判断函数: int is_palindrome(int num) { int original = num; int reversed = 0; while (num > 0) { reversed = reversed * 10 + num % 10; num /= 10; } return reversed == original; } 注意:这个函数对于末尾有0的数,反转后会有问题吗?比如10,反转后变成1,不相等,所以10不是回文数,正确。101反转后是101,正确。 但是,注意题目要求:输出k个大于等于n的回文孪生素数对。 注意:孪生素数对中,我们只输出较小的那个素数>=n。比如n=10,那么(11,13)是满足的(因为11>=10)。 另外,注意:同一个素数可能出现在多个孪生素数对中吗?不会,因为每个素数对由两个素数确定,且相邻。 但是,注意:孪生素数对是(p, p+2),所以不会重叠。 然而,我们需要注意:当t+2超过我们考虑的范围?不需要,因为我们只要求输出k对。 考虑到n和k都不超过100,所以我们可以直接搜索。 但是,我们需要注意:回文素数在100以内有哪些?比如:2,3,5,7,11(101已经超过100,但是n最大100,所以我们的t从n(<=100)开始,那么t+2最大102,所以我们需要考虑三位数)。 由于n不超过100,所以t从n(最小可能是1)到某个上界(比如10000?)应该可以找到k=100对?但实际上回文孪生素数对可能没有那么多。但题目要求k不超过100,所以我们可以设定一个足够大的上限(比如1000000)或者不设上限直到找到k对。 但是,题目没有给出k的最大值,但说k是不超过100的正整数,所以最多100对。而回文孪生素数对在自然数中虽然稀疏,但在1000000以内应该可以找到100对(实际上可能没有,但题目要求k不超过100,且n不超过100,所以我们可以先尝试,如果找不到100对,那么输出所有找到的,但题目要求输出k个,所以必须找到k个,如果找不到程序会一直运行,所以我们需要确保有k对存在?但题目没有保证,所以我们需要设置一个安全的上限,比如1000000,如果超过上限还没有找到k对,就停止并输出已找到的(但题目要求输出k个,所以如果找不到k个,则输出所有找到的?题目要求是输出k个,所以如果找不到k个,那么应该输出错误?但题目没有说明,我们假设在合理范围内(比如1000000以内)可以找到k对(k<=100))。 实际上,回文孪生素数对比较稀少,我们需要考虑可能没有那么多。但题目要求输出k个,所以如果找不到k个,我们可以设置一个上限,比如当t超过1000000时,停止并输出错误信息(或者题目保证一定有解,我们就不设上限?但题目没有保证,所以为了安全,我们设置上限为1000000,如果达到上限还没找到k对,就停止并输出已找到的对数,但题目要求输出k个,所以最好还是不要设置上限,因为k最大100,而回文孪生素数对在1000000以内应该可以找到100对?我们不确定,所以先不设上限,因为n不超过100,k不超过100,所以即使搜索到几万应该也能找到100对(实际上可能没有100对,我们需要验证))。 但是,为了程序的健壮性,我们设置一个最大上限,比如t不超过1000000(即较小的那个数不超过1000000)。如果在这个范围内没有找到k对,我们就停止并输出错误(或者停止并输出已经找到的,但题目要求输出k个,所以如果找不到k个,我们只能输出已经找到的,并说明不足?但题目要求输出k个,所以如果找不到k个,我们只能输出部分?但题目要求是输出k个,所以如果找不到,我们无法满足要求。因此,我们需要知道在1000000以内是否有至少100对回文孪生素数对?) 实际上,我们可以预先计算一下:在1000000以内,回文素数有多少?孪生素数有多少?两者都满足的不会太多。所以100对可能找不到。因此,我们需要和用户确认题目的正确性。 但是,题目描述为“输入两个不超过100的正整数n和k”,所以n和k都不超过100,但并不意味着素数对的上限不超过100。我们只能假设在合理范围内有解。 为了保险,我们设置一个上限,如果t>1000000,则停止循环,并输出已经找到的(如果不够k对,则输出所有,然后退出循环,并输出错误信息?)。但题目要求输出k个,所以如果找不到,我们只能输出部分。但题目没有说明,所以我们先按照能找到k对来写,如果实际运行中找不到,我们可以调整上限。 另外,我们可以考虑:回文孪生素数对在1000000以内有多少?我们可以先列举一些: 例如: (3,5): 3回文,5是回文 -> 是 (5,7): 是 (11,13): 是 (17,19): 17->71? 不对,注意17反转是71,但71不等于17,所以17不是回文数!回文数要求正反读一样,所以17不是回文数。同样19反转是91,也不等于19。 (31,33): 33不是素数 (71,73): 71反转是17,不等于71;73反转是37,不等于73 -> 不是 (101,103): 101是回文数(101反转还是101),103反转是301,不等于103 -> 所以只有101是回文数,103不是,所以不是。 因此,实际上回文孪生素数对非常少。 我们重新思考:题目要求的是两个数都是回文素数,且是孪生素数对。 那么我们重新列举: 3: 回文(一位数),5:回文(一位数) -> (3,5) 是 5:回文,7:回文 -> (5,7)11:回文11反转还是11),13:回文?13反转是31,不等于13 -> 不是 那么(11,13)不是。 17:反转71不等于17 -> 不是 19:反转91不等于19 -> 不是 31:反转13不等于31 -> 不是 101:是回文,103:反转301不等于103 -> 不是 107:反转701不等于107 -> 不是 113:反转311不等于113 -> 不是 149:反转941不等于149 -> 不是 151:是回文,153不是素数 -> 没有孪生 157:反转751不等于157 -> 不是 179:反转971不等于179 -> 不是 181:是回文,183不是素数 -> 没有孪生 191:是回文,193:反转391不等于193 -> 不是 311:是回文311反转是113,不等于311 -> 不是 313:是回文313反转是313,所以是回文,但是它的孪生对是311313(但311也是素数,所以(311,313)是孪生素数对,且311回文素数311反转113311,所以311不是回文素数)?所以313回文素数,但311不是,所以(311,313)不是两个都是回文素数。 因此,我们之前列举的只有(3,5)(5,7)。 那么(1000000以内)还有吗?我们可能漏掉了一些。 比如: 我们检查两位数的回文素数:只有11(但是13不是回文数,所以没有孪生对) 三位数的回文素数:101, 131, 151, 181, 191, 313, 353, 373, 383, 727, 757, 787, 797, 919, 929, ... 然后检查它们加减2是否是素数且也是回文素数。 以101为例:孪生对是(101,103)(99,101)(但99不是素数),所以只有(101,103)这一对,但是103不是回文数(反转301) 131: 孪生对是(129,131)(131,133),但129和133都不是素数。 151: 153不是素数,149是素数,但149不是回文数(反转941)。 181: 179是素数,但179不是回文数(971);183不是素数。 191: 193素数,但193反转是391,不是回文数。 313: 311素数,但311不是回文数(反转113);315不是素数353: 孪生对是(351,353)(353,355)(都不是素数)。 373: 371和375都不是素数383: 381和385都不是素数。 727: 725和729都不是素数。 757: 755和759都不是素数。 787: 785和789都不是素数。 797: 795和801都不是素数。 919: 917和921都不是素数。 929: 927和931都不是素数。 四位数:1001(不是素数),等等。 因此,在1000000以内,我们只找到(3,5)(5,7)这两对。 那么,题目要求输出k个(k<=100)大于等于n的回文孪生素数对,如果n=3, k=2,那么可以输出两对:3和5,5和7。 但是注意:这里(5,7)中的5大于等于3,满足。 但是,如果n=6,那么第一对应该是(5,7)(因为5>=6? 5<6,所以不行),那么下一对呢?似乎就没有了。所以当n>=6时,我们可能一对也找不到。 因此,我们需要重新审视题目:题目要求输出k个大于等于n的回文孪生素数对。这意味着孪生素数对中较小的那个素数>=n。 所以,如果n=6,那么(3,5)不满足(因为3<6),(5,7)中5<6,也不满足。那么就没有了。 所以,这个题目可能实际上只有两对:(3,5)(5,7)。那么当n>7时,就没有了。 因此,题目要求k不超过100,但实际上可能只有两对。所以如果k>2,并且n>7,那么我们可能无法输出k对。 所以,我们需要在程序中处理这种情况:如果找不到k对,就停止循环(设置一个上限),并输出已经找到的(如果有)和错误信息?但题目要求输出k个,所以如果找不到,我们只能输出部分,然后退出。 但是,题目没有明确说明,所以我们按照实际找到的输出(但题目要求输出k个,所以如果找不到k个,我们就不满足要求)。因此,我们假设输入保证有解(即n<=5,且k<=2)?这样不太合理。 我们需要和用户确认题目的正确性。但根据题目描述,我们只能按照要求编写。 所以,程序逻辑如下: 输入n, k 初始化count=0, t = (n是偶数? n+1: n) 但注意:如果n是偶数,那么第一个奇数就是n+1;如果n是奇数,那么从n开始。但是孪生素数对中较小的数t必须是奇数(除了(3,5)中的3是奇数,5也是奇数),所以从奇数开始。 但是注意:t可能为1,那么1不是素数,跳过。 然后我们循环,每次t增加2(只检查奇数),直到找到k对或者t超过某个上限(比如1000000): 检查t和t+2是否都是素数(is_prime(t)和is_prime(t+2)) 检查t和t+2是否都是回文数(is_palindrome(t)和is_palindrome(t+2)) 如果都满足,则输出这一对,并且count++。 如果count达到k,就停止。 注意:当t=3时,我们检查(3,5);当t=5时,我们检查(5,7);当t=7时,我们检查(7,9)(9不是素数->跳过。 所以,我们能够找到(3,5)(5,7)。 注意:在输出时,我们输出的是孪生素数对,所以可以输出为: (3, 5) (5, 7) 但是注意,5出现了两次,但题目要求是输出不同的对。 另外,如果n=5,k=1,那么第一对应该是(5,7)(因为(3,5)3<5,所以不满足>=5)。 因此,我们只需要在t>=n时才开始检查。 但是,注意:孪生素数对中较小的数是t,所以我们只考虑t>=n。 所以,当n=5时,我们不会检查t=3(因为3<5),会检查t=5(满足,输出(5,7)),然后下一个t=7(检查(7,9)不满足),然后t=9(跳过,不是素数...直到上限。 因此,程序可以这样写。 但是,由于回文孪生素数对非常少,我们也可以预先计算出来(只有两对),然后根据n和k输出。 但是,为了通用性,我们还是按照循环来写,并设置上限(比如t<1000000)。 如果达到上限还没有找到k对,我们就输出已经找到的(可能不足k),并退出循环。 代码结构: #include <stdio.h> #include <math.h> // 判断素数函数 int is_prime(int num) { // 处理1和偶数 if (num <= 1) return 0; if (num == 2) return 1; if (num % 2 == 0) return 0; for (int i = 3; i <= sqrt(num); i += 2) { if (num % i == 0) return 0; } return 1; } // 判断回文数函数 int is_palindrome(int num) { int original = num; int reversed = 0; while (num > 0) { reversed = reversed * 10 + num % 10; num /= 10; } return reversed == original; } int main() { int n, k; scanf("%d %d", &n, &k); int count = 0; int t = n; // 当前要检查的起始点 // 如果t是偶数,那么最小的奇数就是t+1,但注意:如果n是偶数,那么第一个奇数应该是n+1(因为偶数不可能是素数(除了2),但2和4不是孪生素数对(4不是素数),所以我们跳过偶数) if (t % 2 == 0) { t++; } // 设置一个上限,避免无限循环 int limit = 1000000; while (count < k && t <= limit - 2) { // 注意:t+2不能超过limit // 检查t和t+2 if (is_prime(t) && is_prime(t+2)) { // 再检查回文 if (is_palindrome(t) && is_palindrome(t+2)) { printf("(%d, %d)\n", t, t+2); count++; } } // 下一个奇数 t += 2; // 如果t+2超过上限,则退出 if (t + 2 > limit) { break; } } // 如果count<k,说明没有找到足够的对数,可以输出错误信息(可选) if (count < k) { // 可以输出错误,但题目要求输出k个,所以这里我们只输出实际找到的,不足k个 // 题目没有要求,我们可以不输出错误,因为题目可能保证有解 // 这里我们不做错误输出,只是退出 } return 0; } 但是,我们可能漏掉(3,5)(5,7)?不会,只要n<=3,那么t=3(如果n是3)就会检查到(3,5);然后t=5时检查(5,7)(因为t=5>=3,所以n=3时,两个都会输出)。 但是,当t=5时,我们输出(5,7),然后t=7,检查(7,9)(不满足),然后t=9(跳过)... 因此,可以正确输出。 测试: 输入:n=3, k=2 输出: (3,5) (5,7) 输入:n=5, k=1 输出:(5,7) 输入:n=6, k=1 -> 没有输出(因为(5,7)中5<6,而下一个孪生对(7,9)不满足,且后面没有回文孪生素数对了) 所以,如果输入n=6,k=1,则程序会循环直到上限,然后退出,没有输出(count=0)。 但是,题目要求输出k个,这里没有输出,所以需要处理吗?题目没有说明,所以我们不输出任何对,程序结束。 但是,用户可能希望知道没有找到。所以我们可以修改:在循环结束后,如果count<k,输出一个信息(比如"已经找到所有符合条件的孪生素数对,但只找到%d对。"),但题目没有要求,所以我们可以不输出。 根据题目要求,只需要输出k个,如果没有,则不输出。所以这样也可以。 但是,为了满足题目要求(输出k个),如果找不到,我们就无法输出k个,所以只能输出实际找到的。 因此,我们按照上述代码。 但是,注意:题目要求输出k个,所以如果找不到k个,我们就输出实际找到的(可能少于k个)?题目要求是输出k个,所以如果找不到,我们就输出已经找到的,然后停止。这样也可以,因为题目要求输出k个,但实际不足,我们只能输出部分。 但是,题目没有明确说明,所以我们的程序逻辑是:尽可能多地输出(最多k个),如果不足,则输出实际找到的。 因此,我们不需要修改,因为count在达到k时就会停止。 但是,我们还需要注意:回文数判断函数对于一位数的处理:一位数反转后还是它自己,所以是回文数,正确。 另外,素数判断函数中,1不是素数,2是素数,但是2是偶数,我们已经跳过(因为t从奇数开始,所以不会检查2)。 所以,程序完整代码如下: 注意:我们设置上限为1000000,因为题目n不超过100,k不超过100,所以1000000足够大,而且回文孪生素数对非常少,所以循环不会太久。 但是,如果n=1000000-2,那么t一开始就超过上限,所以不会进入循环。 因此,我们设定上限为1000000,t的上限为1000000-2。 代码: </think>### C语言实现:回文孪生素数对查找程序 #### 设计思路 根据回文孪生素数对的定义(两个素数相差2,且各自都是回文数),设计以下解决方案: 1. **素数判断**:使用优化的试除法 2. **回文数判断**:通过数字反转实现 3. **主循环**:从n开始检查奇数序列(偶数不可能是素数) 4. **提前终止**:设置上限防止无限循环 ```c #include <stdio.h> #include <math.h> #include <stdbool.h> // 判断素数函数 bool is_prime(int num) { if (num <= 1) return false; if (num == 2) return true; if (num % 2 == 0) return false; // 优化:检查到平方根即可 int limit = (int)sqrt(num) + 1; for (int i = 3; i < limit; i += 2) { if (num % i == 0) return false; } return true; } // 判断回文数函数 bool is_palindrome(int num) { if (num < 10) return true; // 一位数总是回文数 int original = num; int reversed = 0; while (num > 0) { reversed = reversed * 10 + num % 10; num /= 10; } return reversed == original; } int main() { int n, k; scanf("%d %d", &n, &k); int count = 0; int t = (n % 2 == 0) ? n + 1 : n; // 从大于等于n的最小奇数开始 const int LIMIT = 1000000; // 安全上限 while (count < k && t <= LIMIT - 2) { // 检查孪生对 (t, t+2) if (is_prime(t) && is_prime(t + 2)) { if (is_palindrome(t) && is_palindrome(t + 2)) { printf("(%d, %d)\n", t, t + 2); count++; } } t += 2; // 只检查奇数 // 提前终止检查 if (t + 2 > LIMIT) break; } // 未找到足够结果的处理 if (count < k) { fprintf(stderr, "仅找到%d对回文孪生素数\n", count); } return 0; } ``` #### 关键函数说明 1. **`is_prime`函数**: - 时间复杂度:$O(\sqrt{n})$ - 优化策略:跳过偶数,检查到平方根 ```c int limit = (int)sqrt(num) + 1; for (int i = 3; i < limit; i += 2) ``` 2. **`is_palindrome`函数**: - 数学反转法:$1233×100 + 2×10 + 1 = 321$ - 特殊处理:一位数总是回文3. **主循环逻辑**: ```mermaid graph TD A[起始奇数t≥n] --> B{检查t和t+2} B -->|都是素数| C{都是回文数?} B -->|非素数| D[t+=2] C -->|是| E[输出并计数] C -->|否| D E --> F{计数<k?} F -->|是| B F -->|否| G[结束] ``` #### 测试用例 | 输入 (n, k) | 输出 | |-------------|------| | `3 2` | (3, 5)<br>(5, 7) | | `5 1` | (5, 7) | | `10 1` | 无输出(无满足条件的数对) | #### 算法复杂度分析 | 操作 | 时间复杂度 | 空间复杂度 | |------|------------|------------| | 素数判断 | $O(\sqrt{n})$ | $O(1)$ | | 回文数判断 | $O(\log n)$ | $O(1)$ | | 主循环 | $O(k \cdot \sqrt{n})$ | $O(1)$ | #### 注意事项 1. **回文数特性**:所有一位素数都是回文数 2. **孪生素数特性**:除(3,5)外所有孪生素数对均为奇数 3. **性能考虑**:当$n>100$时回文孪生素数对极稀少 4. **安全上限**:设置$10^6$防止无限循环
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值