公约公倍、周期、字符串、循环、函数、数组综合练习

 秋游活动

学校举行秋游活动。 由于这次秋游活动来的人太多, 学校租了三辆大巴车来把学生运到秋游营地。 但是由于三辆车型号不一样, 所以跑一趟往返所需的时间也不一样。 小明来到停车场时, 正好见到三辆车同时发车。 好奇的他想知道, 如果他在这里等着, 过多久才能看见下一次三辆车同时发车。

输入格式

包含一行三个数, 分别表示每一辆车跑一次往返所需的分钟数(不超过 100 分钟) , 用空格分开 。

输出格式

包含一个数, 为小明所需等待的时间(分钟数) 。

输入/输出例子1

输入:

4 6 3

输出:

12

代码:
#include<bits/stdc++.h>
using namespace std;
int a,b,c,sum=1;
int main(){
    cin>>a>>b>>c;
    sum=sum*(__gcd(a,b))*(__gcd(b,c))*(__gcd(a,c));
    cout<<a*b*c/sum;
    return 0;
}

分数减法

image.png

这样的分式运算我们都会。请编程计算两个分数相减的结果。 

输入格式

第一行 2 个整数 a 和 b,表示一个分数(a/b)<=a<b <=10000。
第二行 2 个整数 c 和 d,表示一个分数,(d/c)<=c<d <=10000。 

输入数据保证计算结果为正。

输出格式

2 个整数,表示结果。

提示:运算结果分式要约分。

输入/输出例子1

输入:

4 7

1 3

输出:

5 21

代码:
#include<bits/stdc++.h>
using namespace std;
int a,b,c,d,fm,fz;
int main(){
    cin>>a>>b>>c>>d;
    fm=b*d,fz=a*d-b*c;
    cout<<fz/__gcd(fm,fz)<<" "<<fm/__gcd(fm,fz);
    
    return 0;
}

桐桐的研究

在第一节桐桐已经接触过因数(子),其实也就是约数:对于一个自然数N,如果存在一个非0的正整数d(d<=N),使得N mod d=0,则d是N的约数。N=1时,约数只有一个为1,当N>1时,要分两种情况:若N为质数,则其约数只有2个,即1和它本身;若N为非质数,则其约数个数肯定大于2个。我们称N的所有约数中最大的那个为N的最大约数。

    桐桐对两个自然数N和M的公约数发生了兴趣,例如:N=8,M=36,它们的公约数有:1,2,4,其中最大的那个公约数4称为这两个自然数的最大公约数。同时,两个自然数N和M的公倍数也引起了桐桐的兴趣。公倍数的概念与公约数类似,例如,N=8,M=36,它们的公倍数有:72,144,216…,有无限多个,其中72是最小的公倍数,称为这两个自然数的最小公倍数。

请你编写程序帮助桐桐求两个自然数的最大公约数和最小公倍数。

输入格式

只有一行,为两个自然数m,n(m≤10^8,n≤10^8),用空格隔开

输出格式

共两行,第一行为最大公约数,第二行为最小公倍数。

输入/输出例子1

输入:

10 15

输出:

5

30

代码:

#include<bits/stdc++.h>
using namespace std;
long long a,b;
int main(){
    cin>>a>>b;
    cout<<__gcd(a,b)<<"\n"<<a*b/__gcd(a,b);
    
    return 0;
}

面积

A型砖是红色正方形,B型砖是黄色正方形,边长不一定相等。学校想使用这2种地砖在运动场两端各铺设一个正方形的标志。一块标志方块全是红色的,另一块标志方块全是黄色的,两块标志面积要一样大小。由于地砖切割机坏了,地砖只能整块的使用,标志方块可能很大。为了节省费用,老师要求晨晨通过编计算机程序来计算标志最小的边长是多少?

输入格式

一行:2个整数A和B。分别表示边长。(2数均为大于0小于20000000的整数)

输出格式

一行:一个整数表示答案的边长。

输入/输出例子1

输入:

4 6

输出:

12

代码:
#include<bits/stdc++.h>
using namespace std;
long long a,b;
int main(){
    cin>>a>>b;
    cout<<a*b/__gcd(a,b);
    
    return 0;
}

前面几道题都是关于公倍公约的,下面开始涉及到循环了

打印方阵

下面这样的方阵很有规律,称为蛇形方阵。例如 3*3 的:

1 2 3

6 5 4

7 8 9

现在给定边长,输出相应的蛇形方阵。

输入格式

1 个整数 n,表示要输出 n*n 的蛇形方阵,1<=n <=100。

输出格式

n 行,每行 n 个整数,空格隔开。

输入/输出例子1

输入:

4

输出:

1  2  3  4

8  7  6  5

9 10  11 12

16 15 14 13

代码:
#include<bits/stdc++.h>
using namespace std;
int n,sum=1;
int main(){
    cin>>n;
    for(int i=0;i<n;i++)
    {
        if(i%2==0)
        {
            for(int j=0;j<n;j++,sum++)
            	cout<<sum<<" ";
            sum=sum+n-1;
            cout<<"\n";
        }
        if(i%2==1)
        {
            for(int j=0;j<n;j++,sum--)
            	cout<<sum<<" ";
            sum=sum+n+1;
            cout<<"\n";
        }
    }
    
    return 0;
}

字母表

 Limak 是只想学习英语字母的小熊。他试图按照字母表顺序从'a'一直读到'z'。你的工作是阻止他犯错,一旦他犯错,你立刻让他停止。你能检查他正确说了多少个首字母吗?

输入格式

一个字符串 S,全部由小写英文字母构成,长度不超过 26。

输出格式

一个整数,表示 Limak 在停止前正确说出的英文字母个数。

输入/输出例子1

输入:

abctyf

输出:

3

样例解释

image.png

代码:
#include<bits/stdc++.h>
using namespace std;
string s;
int sum,j=0;
int main(){
    cin>>s;
    for(char i='a';j<s.size();i++,j++)
    {
    	if(s[j]==i)
        	sum++;
        else break;
    }
    cout<<sum;
    return 0;
}

JB机器人移动

在二维平面坐标系上,有一个机器人从原点 (0, 0) 开始。给出它的移动顺序,判断这个机器人在完成移动结束后的坐标。

移动顺序由字符串表示。字符 move[i] 表示其第 i 次移动。机器人的有效动作有 R(右),L(左),U(上)和 D(下)。

注意:机器人“面朝”的方向无关紧要。 “R” 将始终使机器人向右移动一次,“L” 将始终向左移动等。此外,假设每次移动机器人的移动幅度相同。

输入格式

第1行:1个字符串,不超过1000。

输出格式

一行2个整数,表示横坐标和纵坐标。

输入/输出例子1

输入:

UD

输出:

0 0

解释:机器人向上移动一次,然后向下移动一次。所有动作都具有相同的幅度,因此它最终回到它开始的原点。

输入/输出例子2

输入:

LLU

输出:

-2 1

解释:机器人向左移动两次。它最终位于原点的左侧,距原点有两次 “移动” 的距离。

代码:
#include<bits/stdc++.h>
using namespace std;
int x,y;
string s;
int main(){
    cin>>s;
    for(int i=0;i<s.size();i++)
    {
        if(s[i]=='L')x--;
        if(s[i]=='R')x++;
        if(s[i]=='U')y++;
        if(s[i]=='D')y--;
    }
    cout<<x<<" "<<y;
    return 0;
}

上课时间

现在,小学实行双休日(好幸福!)。

以前,周六的上午也是要上课滴:周一到周五上午四节课,下午两节课;周六上午还要上 4 节课,下午才开始休息。

已知每节课 40 分钟。

给你 n,请你从周一开始算起,n 天的上课时间是多少分钟?

输入格式

输入共一行,一个正整数 n,表示天数。

输出格式

输出共一行,包含一个正整数,表示总上课时间t。

输入/输出例子1

输入:

9

输出:

1840

样例解释

9天包括:

完整的1周:5×6+4=34节课;下一个周一周二:2×6=12节课。

共(34+12)×40=1840分钟。

数据范围

对于40%的数据:n<=30000;

对于80%的数据:n<=2000000000;

对于100%的数据:n<=1000000000000000000。

代码:
#include<bits/stdc++.h>
using namespace std;
long long n,ans;
int main(){
    cin>>n;
    ans=n/7*34;
    for(int i=1;i<=n%7;i++)
    {
        if(i>=1&&i<=5)ans+=6;
        else ans+=4;
    }
    cout<<ans*40;
    return 0;
}

下面几道题有一点难度

冬眠

麻雀帕西和青蛙弗洛格是好玩伴,它们经常一起比赛唱歌。但冬天来了,青蛙弗洛格冬眠了,它的睡眠深度是 D。麻雀帕西觉得好无聊,于是它想办法要唤醒弗洛格。麻雀帕西只会唱 N 首歌,第 i 首歌的音量是 Si。每听完一首歌,青蛙弗洛格的睡眠深度就会减少,减少的值等于它听到的歌的音量。当青蛙弗洛格的睡眠深度大于 0 的时候,它会继续冬眠,当睡眠深度小于或者等于 0 时,它就会被唤醒了。麻雀帕西会从第 1 首歌开始唱,唱完第1 首歌后如果弗洛格还没醒就接着唱第 2 首歌,如果唱完第 2 首歌弗洛格还没醒就接着唱第 3 首歌,依次类推,如果唱完第 N 首歌后弗洛格还没醒,那么麻雀帕西又重新从第 1 首歌开始唱,就像循环播放音乐一样,一直到青蛙弗洛格被唤醒为止,那么麻雀帕西总共唱了多少首歌?

输入格式

第一行,两个整数: D 和 N。
第二行,N 个整数,空格分开,第 i 个整数就是第 i 首歌的音量 Si。

输出格式

一个整数,麻雀帕西总共唱了多少首歌后,弗洛格会被唤醒?

输入/输出例子1

输入:

13 3

5 2 4

输出:

4

数据范围

对 80%的数据,1 ≤ D ≤ 10000,1 ≤ N ≤ 50,1 ≤ Si ≤ 100。

另外 20%的数据,1 ≤ D ≤ 2000000000,1 ≤ N ≤ 50,1 ≤ Si ≤ 3。

样例解释

 代码:
#include<bits/stdc++.h>
using namespace std;
long long k,n,s[55],ans,sum,x,y;
int main(){
    cin>>k>>n;
    for(int i=1;i<=n;i++)
    {
        cin>>s[i];
        ans+=s[i];
    }
    x=k/ans,k=y=k%ans;
    sum=sum+n*x;
    if(y!=0)
    {
        for(int i=1;i<=n;i++)
        {
            k=k-s[i],sum++;
            if(k<=0){cout<<sum;return 0;}
        }
    }
    cout<<sum;
    return 0;
}

新型机器人

有一新型机器人可以按照输入的命令进行移动,命令包含’E’、’S’、’W’、’N’四种,分别对应四个不同的方向,依次为东、南、西、北。执行某个命令时,它会向着对应方向移动一个单位。作为新型机器人,自然不会只单单执行一个命令,它可以执行命令串。对于输入的命令串,每一秒它会按照命令行动一次。而执行完命令串最后一个命令后,会自动从头开始循环。在0时刻桐桐将机器人放置在了(0,0)的位置,并且输入了命令串。她想要知道T秒后机器人所在的位置坐标。

向东移动,坐标改变改变为(X+1,Y);

向南移动,坐标改变改变为(X,Y-1);

向西移动,坐标改变改变为(X-1,Y);

向北移动,坐标改变改变为(X,Y+1);

输入格式

第1行:一个字符串,表示桐桐输入的命令串,保证至少有1个命令(命令的长度<=10^6)

第2行:一个正整数T(T<=2^31)

输出格式

第1行:两个整数,表示T秒时,机器人的坐标。

输入/输出例子1

输入:

NSWWNSNEEWN

12

输出:

-1 3

代码:
#include<bits/stdc++.h>
using namespace std;
int x,y,z,t;
string s;
int main(){
    cin>>s>>t;
    z=s.size();
    for(int i=0;i<z;i++)
    {
        if(s[i]=='E')x++;
        if(s[i]=='S')y--;
        if(s[i]=='W')x--;
        if(s[i]=='N')y++;
    }
    int p=t/z,q=t%z;
    x*=p,y*=p;
    t=q;
    for(int i=0;i<t;i++)
    {
        if(s[i]=='E')x++;
        if(s[i]=='S')y--;
        if(s[i]=='W')x--;
        if(s[i]=='N')y++;
    }
    cout<<x<<" "<<y;
    return 0;
}

旋转操作

把字符串旋转一次操作等价于把字符串的最后一个字符跑到在前面,例如:"abcdefg" ---旋转一次---"gabcdef"。现在输入一个字符串 s,还有 N 个旋转操作。每个操作有 3 个参数:s , t, c,意思是要你把开始位置是 s,结束位置是 t 的这段字符串旋转 c 次。例如:字符串"abcdefg",经过操作(2,5,2)后变为"abefcdg"。注意:字符串从0开始。

输入格式

第 1 行:包含空格的字符串 s,长度不超过 1000 ;
第 2 行:一个整数 N,表示下面有 N 个旋转操作度 (1<=N<= 1000);
第 3 行到第 N+3 行:每行 3 个整数:s,t,c。保证 0<=s<=t<s 的长度;0<=c<10000;

输出格式

输出只有 1 行,将 s 依次 N 次旋转操作后的字符串。

输入/输出例子1

输入:

Youwantsomeonetohelpyou

3

1 5 100

0 3 20

2 15 60

输出:

Yonetouwantsomeohelpyou

样例解释

第一次旋转后的结果是:Youwantsomeonetohelpyou
第二次旋转后的结果是:Youwantsomeonetohelpyou
第三次旋转后的结果是:Yonetouwantsomeohelpyou
其中,第三次旋转,就是把子字符串“uwantsomeoneto“”旋转60次。

提示

该字符串可能有空格

代码:
#include<bits/stdc++.h>
using namespace std;
string s;
int t,a,b,c;
int main(){
    getline(cin,s);
    cin>>t;
    while(t--)
    {
        cin>>a>>b>>c;
        for(int i=1;i<=c%(b-a+1);i++)
        {
            char x=s[b];
            for(int j=b;j>a;j--)
                s[j]=s[j-1];
            s[a]=x;
        }
        
    }
    cout<<s<<endl;
    return 0;
}

手机号码

奶牛Bessie最近买了一台手机,它的手机号码是:13300303003,手机号码由11个数字组成。Bessie最近在上电脑课学了【复制】和【粘贴】,于是它打开word软件,把它的手机号码复制,然后粘贴了N次。例如N=1时,是这样:13300303003 。又例如N=2时,是这样:1330030300313300303003。 再例如N=3时,是这样:133003030031330030300313300303003。 如果N=4,会是这样:13300303003133003030031330030300313300303003。 现在给出了三个正整数:N,S,T。表示奶牛Bessie把它的手机号码复制粘贴了N次,然后奶牛要计算:第S个数字到第T个数字之间,有多少个数字3(包含第S个数字和第T个数字)?由于奶牛Bessie复制粘贴N次手机号码后已经眼花了,所以它希望你能写个程序来帮它计算,你能做到吗?

输入格式

一行,三个正整数: N,S,T

输出格式

一个整数,表示Bessie把手机号码复制粘贴N次后,第S个数字到第T个数字之间包含了多少个数字3(包含第S个数字和第T个数字)。

输入/输出例子1

输入:

1 2 11

输出:

5

样例解释

image.png

 代码:
#include<bits/stdc++.h>
using namespace std;
int n,a,b,sum;
string s="13300303003";
int main(){
    cin>>n>>a>>b;
    b--,a--;
    sum+=(b/11-a/11-1)*5;
    if(a/11!=b/11)
    {
        for(int i=a%11;i<s.size();i++)
            if(s[i]=='3')sum++;
        for(int i=0;i<=b%11;i++)
            if(s[i]=='3')sum++;
    }
    else
    {
        for(int i=a/11;i<=b/11;i++)
            if(s[i]=='3')sum++;
    }
    cout<<sum;
    return 0;
}

移动次数最少

有n堆糖果(2≤n≤200),排成一行,编号分别为1,2,…n。已知每堆糖果有一定的颗数,且颗数之和均为n的倍数。移动各堆中的任意颗糖果,使每堆的数量达到相同,且移动次数最少。

  移动规则:每次可以移动任意的糖果颗数,第1堆可以移向第2堆,第2堆可以移向第1堆或第3堆,。。。。。。 第n 堆只可以移向第n -1堆。

例如,当n=4时:

堆号      1     2     3     4

颗数      9     8     17    6

移动的方法有许多种, 其中的一种方案:

① 第3堆向第4堆移动4颗,成为:9    8    13    10

② 第3堆向第2堆移动3颗,成为:9    11   10    10

③ 第2堆向第1堆移动1颗,成为:10   10   10    10

经过三次移动,每堆都成为10颗。

输入格式

两行。 第一行一个整数n。第二行n个整数,用空格分隔。

输出格式

一个整数(表示最少移动次数)。

输入/输出例子1

输入:

4                                     

9 8 17 6

输出:

3

代码:
#include<bits/stdc++.h>
using namespace std;
int s[205],h,n,c,z,k,ans,a[205];
int main() {
	cin>>n;
	for(int i=0;i<n;i++)
    {
		cin>>a[i];
		h+=a[i];
		s[i]=h;
	}
	k=n-1,c=h/n,z=k-1;
	while(z!=-1)
    {
		if(a[k]==c)
        {
			k--,z--;
			continue;
		}
		int x=(z+1)*c-s[z];
		a[k]-=x,a[z]+=x;
		k=z,z--;
		ans++;
	}
	cout<<ans<<endl;
	return 0;
} 

恢复数组

有一个数组a[1..n],但是这个数组的内容丢失了,你要尝试恢复它。已知以下的三个事实:

1、对于1<=i<=n,都有a[i]>0,且所有的a[i]互不相同。即a数组保存的全部都是正整数,且互不相同。

2、x和y一定是属于数组a,且x<y。

3、a数组是递增的数组,且相邻两项的差是相等的。即数组a是等差数列。

容易发现,同时满足上面三个条件的a数组不一定是唯一的。你要输出使得a[n]的值最小的那个a数组,如果还不唯一,输出使得a[1]的值最小的那个a数组。

输入格式

多组测试数据。

第一行,一个整数T,表示有T组测试数据。1<=T<=100。

接下来有T行,每行3个整数:n,x,y。2<=n<=50。1<=x,y<=50。

输出格式

共T行,每行n个整数。

输入/输出例子1

输入:

5

2 1 49

5 20 50

6 20 50

5 3 8

9 13 22

输出:

1 49

10 20 30 40 50

20 26 32 38 44 50

3 8 13 18 23

1 4 7 10 13 16 19 22 25 

代码:
#include<bits/stdc++.h>
using namespace std;
int t;
int main(){
    cin>>t;
    while(t--)
    {
        int n,x,y,minn=100000000,minj=0,mini=0;
        cin>>n>>x>>y;
        for(int i=1;i<=x;i++)
        {
            for(int j=1;j<=y-x;j++)
            {
                int sum=i,bj=0,cj=0;
                for(int z=1;z<=n;z++)
                {
                    if(sum==x)bj=1;
                    if(sum==y)cj=1;
                    if(bj&&cj)break;
                    sum+=j;
                }
                if(!bj||!cj)continue;
                sum=i+(n-1)*j;
                if(minn>sum)minn=sum,minj=j,mini=i;
            }
        }
        for(int i=mini;i<=minn;i+=minj)
        	cout<<i<<" ";
        cout<<endl;
    }
    return 0;
}

零花钱

小明把过去n天里每天使用的零花钱记录了下来,他认为对于一段时间(第s天至第t天)里,如果第(s+1)天至第(t-1)天中每天的花费都不高于第s天和第t天的花费,那么这段时间里他的花费是合理的。

给出s和t,如果这段时间的花费是合理的,则输出“yes”,否则输出“no”。

输入格式

第一行一个整数n(1≤n≤50000),表示n天。

第二行n个整数ai(0≤ai≤500),表示每天的花费。

第三行一个整数m(1≤m≤50000),表示m次询问。

接下来m行,每行两个数s,t(1≤s<t≤50000),且保证s至t之间至少相隔一天。

输出格式

输出m行,表示对应每一询问的答案。

输入/输出例子1

输入:

7

4 3 1 2 3 5 7

3

1 4

2 5

2 6

输出:

no

yes

yes

样例解释

第一个询问,第2个数比第4个数大,所以不合理。

第二个询问,第3、4个数都比第2、5个数小,所以合理。

第三个询问,第3、4、5个数都不大于第2个数和第6个数,所以合理。

代码:
#include<bits/stdc++.h>
using namespace std;
int n,a[10000005],m,b[50005][505];
int x,y;
int main(){
    cin>>n;
    for(int i=1;i<=n;i++)
    {
        cin>>a[i];
        for(int j=0;j<=500;j++)
            b[i][j]=b[i-1][j];
        b[i][a[i]]++;
    }
    cin>>m;
    while(m--)
    {
        cin>>x>>y;
        int f=min(a[x],a[y])+1,sum=0;
        for(int i=f;i<=500;i++)
            sum=sum+b[y-1][i]-b[x][i];
        if(sum==0)cout<<"yes\n";
        else cout<<"no\n";
    }
    return 0;
}

填志愿

现有 m(m≤100000) 所学校,每所学校预计分数线是 ai(ai≤10^6)。有 n(n≤100000) 位学生,估分分别为bi(bi≤10^6)。

根据 n 位学生的估分情况,分别给每位学生推荐一所学校,要求学校的预计分数线和学生的估分相差最小(可高可低,毕竟是估分嘛),这个最小值为不满意度。求所有学生不满意度和的最小值

输入格式

第一行读入两个整数 m,n。m 表示学校数,n 表示学生数。

第二行共有 m 个数,表示 m 个学校的预计录取分数。

第三行有 n 个数,表示 n 个学生的估分成绩

输出格式

输出一行,为最小的不满度之和

输入/输出例子1

输入:

4 3

513 598 567 689

500 600 550

输出:

32

代码:
#include<bits/stdc++.h>
using namespace  std;
const int N=1e6+200;
int a[N],b[N],n,m;
int main()
{
    cin>>n>>m;
    for(int i=0;i<n;i++)
        cin>>a[i];
    for(int i=0;i<m;i++)
        cin>>b[i];
    sort(a,a+n);
    int ans=0;
    for(int i=0;i<m;i++)
    {
        int l=0,r=n-1;
        while(l<r)
        {
            int mid=l+((r-l)>>1);
            if(a[mid]<=b[i])l=mid+1;
            else r=mid;
        }
        if(b[i]<=a[0]){
           ans+=a[0]-b[i];
        }
        else{
            ans+=min(abs(a[l-1]-b[i]),abs(a[l]-b[i]));
        }
    }
    cout<<ans;
    return  0;
}

质因数

小明的老师在信息学课堂上讲了有关分解质因数的知识。例如12可以分解质因数:12=2×2×3,60=2×2×3×5等等。小明发现,有些数字分解出来的质因数的个数也是该数字的质因数,例如12分解出来的质因数有3个,3是12的质因数;60分解出来的质因数有4个,但4不是60的质因数。他觉得很有趣,想求出不大于n的所有这样的数字。你能帮帮他吗?

输入格式

一行,一个整数n。

输出格式

若干行,每行一个数,要求按照从小到大的顺序输出。

输入/输出例子1

输入:

12

输出:

4

6

10

12

样例解释

样例1中,4可以分解2个质因数,2是4的质因数;6可以分解2个质因数,2是6的质因数;10可以分解2个质因数,2是10的质因数;12可以分解3个质因数,3是12的质因数。

数据范围

对于50%的数据,2≤n≤1000;

对于80%的数据,2≤n≤10000;

对于100%的数据,2≤n≤100000。

代码:
#include<bits/stdc++.h>
using namespace std;
int n,a[100001],b[100001],c;
void zs()
{
	for(int i=2;i<=100000;i++)
	{
		if(a[i]==0)
		{
			b[++c]=i;
			for(int j=i+i;j<=100000;j+=i)
				a[j]=1;
		}		 
	}
}
bool zys(int t)
{
	int len=0,x=t;
	for(int i=1;i<c;i++)
	{
		while(t%b[i]==0) 
        {
			len++;
			t=t/b[i];
		}
		if(t==1)break;
	}	
    if(len==0)return false;
	if(x%len==0&&a[len]==0&&len!=1)
	{
		return true;
	}
	return false;
}
int main(){
    zs();
    cin>>n;
    for(int i=2;i<=n;i++)
    {
    	if(zys(i))
    	{
    		cout<<i<<endl;
    	}
    }
    return 0;
}

菜鸟整理的一些题,大佬不喜勿喷......

  • 20
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值