数据结构(十进制转换)

数据结构的应用——使用栈实现十进制到其他(2、8、16)进制的转换 <br />算法基于原理:      N = (N / d)×d + N % d<br />其中:<br />N——十进制数<br />d——目标数制的基数<br /> <br />以十进制数1348转换到八进制数举例,其运算过程如下:<br /><br />(来源:数据结构 严蔚敏)<br /> <br />由于结果需要逆序输出,故采用栈结构来实现,具体代码如下:<br /> <br />package ds.linerlist; import java.util.Stack; enum SHIFT 阅读详情
  • 实验内容

使用一个栈,将十进制装换为二进制或八、十六进制;

十进制转换为二进制:

十进制转化为二进制:

  1. 原理:
    • 二进制是一种基数为2的数制,它只包含两个数字:0和1。
    • 十进制数转换为二进制数是通过连续除以2并取余数的过程来完成的。
    • 每次除法的余数(0或1)是从低位到高位生成的二进制位。
    • 由于我们需要从低位到高位收集这些二进制位,因此使用栈是非常合适的,因为栈可以让我们以相反的顺序(后进先出)存储和取出这些位。
  2. 步骤:
    • 初始化一个空栈。
    • 将要转换的十进制数除以2,并将余数(0或1)压入栈中。
    • 使用上一步得到的商重复上述的除法操作,直到商为0。
    • 当商为0时,停止循环。
    • 从栈中弹出所有元素,按照弹出的顺序(即二进制位从低位到高位的顺序)拼接起来,就得到了最终的二进制数。

用栈可以很自然地按照相反的顺序存储和取出元素,这符合二进制数从低位到高位生成的顺序。不需要额外的数组来反转结果。

import java.util.Stack;  

public class Binary {  
    public static String Binary(int decimalNum) {  
        Stack<Integer> stack = new Stack<>();  
  
        while (decimalNum > 0) {  
            int remainder = decimalNum % 2;  
            stack.push(remainder);  
            decimalNum /= 2;  
        }  
  
        StringBuilder binaryNum = new StringBuilder();  
        while (!stack.isEmpty()) {  
            binaryNum.append(stack.pop());  
        }  
  
        return binaryNum.toString();  
    }

测试代码:

public class BinaryTest extends Binary{
    public static void main(String[] args) {  
        int decimalNum = 10;  
        String binaryNum = Binary(decimalNum);  
        System.out.println("十进制" + decimalNum + "转化为二进制:" + binaryNum);  
    }  
}

十进制转换为二进制运行结果:

十进制转换为八进制:

import java.util.Stack;  

public class Octonary {  
    public static String Octonary(int decimalNum) {  
        Stack<Integer> stack = new Stack<>();  
  
        while (decimalNum > 0) {  
            int remainder = decimalNum % 8;  
            stack.push(remainder);  
            decimalNum /= 8;  
        }  
  
        StringBuilder octonaryNum = new StringBuilder();  
        while (!stack.isEmpty()) {  
        	octonaryNum.append(stack.pop());  
        }  
  
        return octonaryNum.toString();  
    }
   } 

测试代码:

public class OctonaryTest extends Octonary{
	    public static void main(String[] args) {  
	        int decimalNum = 25;  
	        String octonaryNum = Octonary(decimalNum);  
	        System.out.println("十进制" + decimalNum + "转化为八进制:" + octonaryNum);  
	    }  
	}

十进制转换为八进制运行结果:

十进制转换为十六进制:

import java.util.Stack;  

	public class Sexadecimal {  
		public static String Sexadecimal(int decimalNum) {  
	        Stack<Integer> stack = new Stack<>();  
	  
	        while (decimalNum > 0) {  
	            int remainder = decimalNum % 16;  
	            stack.push(remainder);  
	            decimalNum /= 16;  
	        }  
	  
	        StringBuilder sexadecimalNum = new StringBuilder();  
	        while (!stack.isEmpty()) {  
	        	sexadecimalNum.append(stack.pop());  
	        }  
	  
	        return sexadecimalNum.toString();  
	    }
	   } 

测试代码:

	public class SexadecimalTest extends Sexadecimal{
	    public static void main(String[] args) {  
	        int decimalNum = 116;  
	        String sexadecimalNum = Sexadecimal(decimalNum);  
	        System.out.println("十进制" + decimalNum + "转化为十六进制:" + sexadecimalNum);  
	    }  
	}

十进制转换为十六进制运行结果:

数据结构x实验二--非负十进制转换为八进制 #include <stdio.h> /*非负十进制转换为八进制*/ void toOct(int input) { int result[10],index=0; int next = 1,oct,deal=input; while(deal != 0){ next = deal/8; /*判断下一个运算数是否小于8,如果小于8就跳出*/ 阅读详情

相关推荐

数制转换(十进制转二进制)

【问题描述】 利用栈实现十进制向二进制的转换。 【输入形式】 输入若干个十进制正整数,输出它们的二进制形式。(提示:输入采用scanf("%d",&x)==1) 【输出形式】 输出每个十进制正整数的二进制形式。

AIGC 987

十进制转换为二进制

数据结构考题 十进制转换为二进制 利用栈(以顺序栈作存储结构)实现进制转换。给定一个十进制整数,编程将该数以二进制形式输出。 顺序栈的类型定义: #define MAXSIZE 100 // MAXSIZE为最大数据元素数目 typedef int ElemType; typedef struct { ElemType *base; ElemType *top; }SqStack; 输入格式: 输入一个十进制整数。 输出格式: 输出转换后的二进制数。 输入样例: 15 输出样例: 在这里给出相应

qq_53056413的博客 5210

数据结构——实现进制转换的算法

将从键盘输入的十进制数转换为N(如二进制、八进制、十六进制)进制数据,利用顺序栈实现数制转换问题

【数据结构】十进制转化为二进制

描述 进制之间的转换是很常见的操作 输入 一个正整数 输出 对应的二进制 #include<iostream> using namespace std; int main() { int n,i,j=0; int a[1000]; cin>>n; i=n; while(i) { a[j]=i%2; i/=2; j+...

SuperSources的博客 4536

数据结构java(将十进制N转换为二进制)

我们看到所转换的2进制数按底位到高位的顺序产生的,而通常的输出是从高位到低位的,恰好与计算过程相反,因此转换过程中每得到一位2进制数则进栈保存,转换完毕后依次出栈则正好是转换结果。 请实现其算法。

Homebrew 必备软件清单:我的 macOS 开发环境搭建全记录

本文详细介绍了如何使用Homebrew在macOS上搭建高效的开发环境,包括基础配置、核心开发工具链、高效编码工具集等30个必备工具。通过Homebrew这一macOS缺失的包管理器,开发者可以一键安装命令行工具和GUI应用,大幅提升工作效率。文章还提供了日常维护命令和疑难问题解决方案,适合从新手到资深开发者的所有用户。

weixin_28836507的博客 353

数据结构练习三-01:十进制转化为二进制

可以用C++中的STL栈结构来轻松实现它。进制之间的转换是很常见的操作。

qq_64246637的博客 974

XR Interaction Toolkit实战:为HTC Vive Cosmos打造抓取、投掷与UI交互(Unity 2023教程)

本文详细介绍了如何使用Unity 2023和XR Interaction Toolkit为HTC Vive Cosmos开发抓取、投掷与UI交互系统。通过实战案例'VR投掷训练室',从基础配置到高级功能实现,涵盖物理抓取、精准投掷机制和VR UI交互设计,帮助开发者提升VR交互开发技能。

weixin_30562507的博客 256

7-7 数据结构考题 十进制转换为二进制 (20 分)

利用栈(以顺序栈作存储结构)实现进制转换。给定一个十进制整数,编程将该数以二进制形式输出。 顺序栈的类型定义: #define MAXSIZE 100 // MAXSIZE为最大数据元素数目 typedef int ElemType; typedef struct { ElemType *base; ElemType *top; }SqStack; 输入格式: 输入一个十进制整数。 输出格式: 输出转换后的二进制数。 输入样例: 15 结尾无空行 输出样例: 在这里给出相应的输出

巧克力曲奇饼冰淇淋的博客 6782

【ArcGIS教程】基于DEM数据的洪水淹没分析——提取淹没区并计算淹没区洪水量

使用ArcGIS开展洪水淹没区分析、提取淹没区并计算淹没区洪水量的详细说明,如果想获取教程中实验数据,请关注微信公众号【GIS小能手】然后在后台留言。

weixin_45469245的博客 6821

通信模组性能调优

本文介绍了高通平台通信模组性能调优的方法,主要包括硬件加速技术和CPU负载优化。针对CPU负载优化,提出了内核RPS/RFS功能启用、网卡队列调整、中断均衡、CPU性能模式设置等措施。同时建议关闭热管理并加强散热,调整TCP接收/发送缓存大小以解决TCP异常报文问题。这些优化手段可显著提高整机吞吐率测试中的网络性能表现。

四儿家的小祖宗的博客 1360

用C语言和数据结构解决十进制转换为二进制的问题

首先介绍一下进制转换的原理:除基取余法。 设十进制数为N,转换的进制为d,则N=(n/d)%d+n%d,就是说:输入一个十进制数N,每次用N除以2,把余数记下来,再用商去除以2...依次循环,直到商为0结束,把余数倒着依次排列,就构成了转换后的二进制数。 知道原理后,就可以通过代码来实现了。 C语言版:(用递归来实现) #include<stdio.h> int f(int n) {...

qq_43391670的博客 3086

【云原生进阶之容器】第六章容器网络6.6.2--Cilium部署

部署Cilium非常简单,可以通过单独的yaml文件部署全部组件(目前我使用了这个方式部署了1.7.1版本),也可以通过Helm Chart一键完成。重要的是部署环境和时机:官方建议所有部署节点都使用Linux最新稳定内核版本,这样所有的功能都能启用。作为一个Kubernetes网络组件,它应该在部署Kubernetes其他基础组件之后,才进行部署。

junbaozi的专栏 793

用栈的思想实现将一个十进制数字转换为八进制 —— 数据结构

栈的灵活运用。

微笑,来自内心坚不可摧的自信。 3122

YOLOv11【第二章:核心模块进阶篇·第3节】LDConv线性可变形卷积改进YOLOv11!

🏆 本文收录于专栏 《YOLOv11实战:从入门到深度优化》。本专栏围绕 YOLOv11 的改进、训练、部署与工程优化 展开,系统梳理并复现当前主流的 YOLOv11 实战案例与优化方案,内容目前已覆盖 分类、检测、分割、追踪、关键点、OBB 检测 等多个方向。

**My Coding Family** 7441

OTG原理讲解

摘要:USB OTG(On-The-Go)是USB 2.0的重要功能,允许设备在主机和从机间动态切换,实现设备间的直接通信。其核心机制是通过ID引脚电平判断角色:Micro-USB中接地为Host,悬空为Device;USB-C则通过CC引脚协商。电路设计需处理ID引脚连接和VBUS电源控制,MCU根据ID状态配置USB控制器模式。典型应用包括手机连接U盘、键盘等外设,极大扩展了移动设备的连接能力。

m0_49476241的博客 3223

数据结构C语言编程—链栈实现十进制转换二进制

#include<stdio.h> #include<malloc.h> #define Elemtype int #define FALSE 0 #define TRUE 1 typedef struct node //定义节点类型 { Elemtype data; struct node *next; }LinkStackNode,*LinkStack; int Push(LinkStack top,Elemtype x) //链栈元素插入

qq_42295125的博客 4807

【tessy】软件环境配置:Keil C51 Keil uVision UVSC (Default)

本文详细说明了tessy软件如何配置【Keil C51 Keil uVision UVSC (Default)】环境,具体操作步骤和注意事项

qq_37282365的博客 601

十进制转换为任意进制--C语言数据结构-栈

本篇文章依照数据结构中的栈来解决进制转换的问题,希望对读者有所帮助。

Liu1_1_的博客 1389

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

c++数据结构 栈与递归 实现十进制转换

今天写题碰到需要将十进制转为八进制,搜了一圈发现普遍为两种:一,输出函数使用格式串%控制。二,一些c++的库函数,不过返回值有较多限制,大多为string型。 联系到近期数据结构学的栈与递归,在草稿纸上模拟几遍后,写出了一个简洁的函数用于进制转换。 代码如下: //因为进制取余结果和输出顺序恰恰相反,故使用栈来保存余数 void f(int n,int k,stack<int> &s) {//n 为十进制待转换的数,k 为所需换成的进制(10以内),s 为保存结果的栈 if(n

算法、原理、设计模式、非线性控制、深度强化学习 1010

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

【数据结构】利用栈将十进制整数转换为对应的八进制数

if (S.top-S.base >= S.stacksize) //栈满,追加存储空间。熟练应用顺序表和单链表存储结构,实现栈的初始化、入栈、出栈等基本操作。// 对于输入的非负十进制整数,打印输出与其等值的八进制数。printf("请输入一个十进制整数:");硬件:一台安装了windows操作系统的计算机。//若栈不为空,删除S的栈顶元素,用e返回其值。printf("转为八进制:");//插入元素e为新的栈顶元素。//检查s栈是否为空栈。软件:C语言编程工具。

周文龙的博客 2020

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

数据结构 进制转换(十进制转换为d(2、8、16)进制)C语言

#include<stdlib.h> #include<stdio.h> #include<stddef.h> #define MAXSIZE 50 typedef char ElemType; /*定义栈结构*/ typedef struct { ElemType data[MAXSIZE]; int top; }SeqStack,*PSeqStack; /*初始化栈,构造一个空栈,如果成功,则返回栈的地址*/ PSeqStack Init_SeqStack.

weixin_51867622的博客 4070

数据结构5:利用栈实现二进制到十进制的转换

这是一个利用栈实现的实例,自己写了一下,本想

yjsfl_xiang的专栏 6240

数据结构 study 7: 栈 实现 十进制 转换为 8进制

数据结构 study 6: 栈 实现 十进制 转换为 8进制

abc 1万+

数据结构示例之十进制转换其他进制

以下为“十进制数转换为其他进制数”的示例: 1. 用c语言实现的版本 #include #include #define StackSize 100 /* 假定预分配的栈空间最多为100个元素 */ typedef int DataType; /*假定栈元素的数据类型为整型 */ typedef struct{ DataType data[StackSize]; int to

WorldMvp的专栏 6354
上一篇: 数据结构 实验一(顺序表、单链表)
下一篇: 数据结构(汉诺塔问题)
wise_ly
博客等级 码龄4年 16粉丝 5原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值