JavaScript的数组练习

JavaScript学习(八十九)—数组练习题 阅读详情
1. 读取学生的10门课的成绩, 然后输出10门课成绩的最高分, 最低分, 总分, 平均分.
   提示:把10门课的成绩保存如一个数组中.

2. 创建100个随机的10到60的随机整数, 然后分别统计每个数字出现的次数

3. 定义一个函数, 判断数组中是否所有的数字都大于0
    提示: 传入一个数组, 返回布尔值

4. 封装函数: 把两个数组共同的元素放入一个新的数组, 并返回新的数组
    提示: 传入两个数组, 返回值为新的数组

5. 定义一个函数: 可以把数组中的下标为 3 的元素移到数组的开头.
    提示: 传入一个数组

6. 有一个从大到小排好序的数组{99,85,82,63,60}。
    现从页面输入一个数,要求按原来的规律将它插入数组中。
    假设你输入的80,则应该插入到82和63之间。

7. 一个数字中有20个元素,对前10个元素使用升序,后10个元素使用降序。
    元素都是整数。

1.
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title></title>
</head>
<!--题目:读取学生的10门课的成绩, 然后输出10门课成绩的最高分, 最低分, 总分, 平均分.
    提示:把10门课的成绩保存如一个数组中.-->
<body>
<script>
    var sum = 0;
    var ave = 0;
    var arr = [90, 100, 10, 20, 30, 40, 50, 60, 70, 80];
    console.log(arr);
    //排序
    arr.sort(function (a, b) {
        return a - b;
    });

    //最高分
    function large(arr) {
        return arr[arr.length - 1];
    };

    //最低分
    function small(arr) {
        return arr[0];
    };

    //总分
    function total(arr) {
        for (var ele of arr) {
            sum += ele;
        }
        return sum;
    };

    //平均分
    function ave(arr) {
        return sum / arr.length;
    }

    //输出
    console.log("总分: " + total(arr));
    console.log("最高分: " + large(arr));
    console.log("最低分: " + small(arr));
    console.log("平均分: " + ave(arr));

</script>
</body>
</html>
<!--记得再次用原型替换3进行调试-->

用函数封装起来:(更具面向对象的思想)

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<script>
function Student(){
    this.scores = [];
    this.init = function (){
        for (var i = 0; i < 3; i++){
            var score = +prompt("请输入学生的成绩:");
            this.scores.push(score);
        }
    };
    this.max = function (){
        var scores = this.scores;
        var m = scores[0];// ["100", "200", "40"]
        for(var i = 1; i < scores.length; i++){
            if(m < scores[i]){
                m = scores[i];
            }
        }
        return m;
    }
    this.min = function (){
        var scores = this.scores;
        var m = scores[0];// ["100", "200", "40"]
        for(var i = 1; i < scores.length; i++){
            if(m > scores[i]){
                m = scores[i];
            }
        }
        return m;
    }
    this.sum = function (){
        var s = 0;
        for(var e of this.scores){
            s += e;
        }
        return s;
    }
    this.avg = function (){
        return this.sum() / this.scores.length;
    }
}

var s1 = new Student();
s1.init(); //初始化学生的成绩

console.log(s1.max());
</script>
</body>
</html>

2.
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<!--创建100个随机的10到60的随机整数, 然后分别统计每个数字出现的次数-->

<script>
    //arr是放随机数产生的数字,newArr是放重复元素和重复个数的二维数组
    var arr = [];
    var newArr = [];

    //js的数组可以动态增加,使用数组字面量创建
    for (var i = 0; i < 100; i++) {
        //用random判断随机数其实不是perfect(正态分布)
        arr[i] = parseInt(Math.random() * 50 + 10);
    }
    console.log("随机数(正态分布):\n" + arr);

    //对数组进行排序
    arr.sort(function (a, b) {
        return a - b;  //升序
    });
    console.log("随机升序排序:\n" + arr);

    //判断数组元素的重复个数,这样算法是相对而言比较高效的,省掉了低效的代码率
    for (var i = 0; i < arr.length;) {
        var count = 0;
        for (var j = i; j < arr.length; j++) {
            if (arr[i] == arr[j]) {
                count++;
            } else {
                break;
            }
        }
        newArr.push([arr[i], count]);
        i += count;
    }
    //输出二维数组
    for (var i = 0; i < newArr.length; i++) {
        console.log(newArr[i][0] + "重复次数:" + newArr[i][1]);
    }
</script>
<body>
</body>
</html>

在这顺便讲解一下随机数生成的方法,以后只要涉及到随机数,就套路进去就行,就跟数学公式一样。(证明略)

如何使用js生成n到m间的随机数字,主要目的是为后期的js生成验证码做准备。

方法1:Math.random() 函数返回0和1之间的伪随机数,可能为0,但总是小于1,[0,1)

生成n-m,包含n但不包含m的整数:

Step1:算出 m-n的值,假设等于w

Step2:Math.random()*w

Step3:Math.random()*w+n

Step4:parseInt(Math.random()*w+n, 10)  在这里10表示10进制,默认就是10进制。


方法2:生成n-m,不包含n但包含m的整数:​

Step1:算出 m-n的值,假设等于w

Step2:Math.random()*w

Step3:Math.random()*w+n

Step4:Math.floor(Math.random()*w+n) + 1    

注:Math.floor() 返回小于等于数字参数的最大整数,对数字进行下舍入

一般记住这两种方法就行了。

另解:(在那里要不要加1,看自己的情况,掌握怎么算的):

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<script>
//  [0, 1)  [0, 51)   [10, 61)   [10, 60]
// m = 10 n= 60
function randomInt(m, n){  //区间: [m, n]
    return parseInt(Math.random() * (n - m + 1) + m);
}

/*创建一个长度是 count, 元素的值的范围 是 [m, n]的数组*/
function createArray(count, m, n){
    var arr = [];
    for (var i = 0; i < count; i++){
        arr.push(randomInt(m, n));
    }
    return arr;
}

function tongji(){
    var obj = {};
    var arr = createArray(400, 10, 19);
    for (var num = 10; num <= 19; num++){
        var c = 0;
        for (var e of arr){
            if (e == num){
                c++;
            }
        }
        obj[num + ""] = c;
    }
    return obj;
    
}
var result = tongji();
console.log(10 + "的个数:" + result["10"]);
console.log(result["11"]);
console.log(result);

</script>
</body>
</html>

3.
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<!--定义一个函数, 判断数组中是否所有的数字都大于0
    提示: 传入一个数组, 返回布尔值
-->
<body>
<script>
    var arr=[10,20,3,1,3.1,9,1,34,90,0,-100,100];
    var flag=true;
    for(var i=0;i<arr.length;i++){
        if(arr[i]<0){
            flag=false;
            console.log("数组存在第一个非正值为:"+arr[i]+" 其数组下标为 "+i);
            break;
        }
    }
    if(flag){
        console.log("数组恒正~");
    }else{
        console.log("因此,数组不是恒正的~");
    }
</script>
</body>
</html>

4.
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<!--封装函数: 把两个数组共同的元素放入一个新的数组, 并返回新的数组
    提示: 传入两个数组, 返回值为新的数组
-->
<body>
<script>
    var arr1 = [1, 2, 3, "aaa", "hello", 999, -1];
    var arr2 = [3, 78, "aaa", "bbb", 99, 1, -1, "hello"];
    var newArr = [];

    //两层嵌套,效率很低。
    function common(arr1, arr2) {
        for (var i = 0; i < arr1.length; i++) {
            for (var j = 0; j < arr2.length; j++) {
                if (arr1[i] === arr2[j]) {
                    newArr.push(arr1[i]);
                }
            }
        }
    }

    common(arr1, arr2);
    console.log(newArr);
</script>
</body>
</html>

5.
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<!--定义一个函数: 可以把数组中的下标为 3 的元素移到数组的开头.
    提示: 传入一个数组
-->
<script>
    var arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 111];
    console.log("原数组: " + arr);
    //函数alter将下标为3的移动到开头
    function alter(arr) {
        var temp = arr[3];
        arr.splice(3, 1);
        arr.splice(0, 0, temp);
    }

    alter(arr);
    console.log("移动后数组: " + arr);
</script>
</body>
</html>

6.
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<!--题目:有一个从大到小排好序的数组{99,85,82,63,60}。
    现从页面输入一个数,要求按原来的规律将它插入数组中。
    假设你输入的80,则应该插入到82和63之间。
-->
<!--
此题方法集锦:
法1:投机取巧   直接先把数字插入到数组头部或者尾部,然后一块排序,很ok吧。

法2:用折半查找二分法,在大样本数据下比较高效,本题解法实则时间复杂度达到O(n),而折半O(log2n)

-->
<body>
<script>
    //需插入的数字
    var insertNum=16;

    //假设未排序,自己先排序一下
    var arr=[88,98,2,5,8,10,25,36];
    arr.sort(function (a,b) {
        return b-a;    //降序排列
    });
    console.log("降序排列的数组为:"+arr);

    // 此循环得到的i值就是排序好的数组最接近insertNum值得那个最大下标,虽然效率很差。
    for(var i=0;i<arr.length;i++){
        if(arr[i]>=insertNum){
            var temp=i;
        }
    }

    //插入到下标为temp+1的位置
    arr.splice(temp+1,0,insertNum);

    //输出info
    console.log("插入数字"+insertNum+"后的新数组为: "+arr);


</script>
</body>
</html>

另解:

<script>
/*7. 有一个从大到小排好序的数组{99,85,82,63,60}。
    现从页面输入一个数,要求按原来的规律将它插入数组中。
    假设你输入的80,则应该插入到82和63之间。*/
function insert(arr, num){
    for(var i = 0; i < arr.length; i++){
        if(arr[i] < num){
            arr.splice(i, 0, num);
            return;   // 直接结束函数
        }
    }
    arr.push(num);
}
var arr = [99, 85, 82, 63, 60];
insert(arr, 610);
console.log(arr);
</script>

7.
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<script>
    //数组元素20个
    var arr = [100,12,34,67,23,16,6,9,24,79,2,90,33,69,1,34,-2,0,666,1000];

    //切片
    var arr1=arr.slice(0,10);
    var arr2=arr.slice(10);

    //前升序
    arr1.sort(function (a,b) {
        return a-b;
    });

    //后降序
    arr2.sort(function (a,b) {
        return b-a;
    });

    //组合新数组(cs6)并输出
    var newArr = [...arr1,...arr2];
    console.log("前升序后降序的数组为: " + newArr);
</script>
</body>
</html>

【原创】SAP/Oracle 集团企业海外全球化实施注意事项: 一带一路本地化 (持续更新)... ABC集团SAP的系统平台已经扩展到全球一百来个国家和地区,SAP系统平台的全球实施项目中, 当时是需要支持当地的业务和法律法规的合规要求。   当时客户也是缺乏当地的资源以及对当地法律法规和业务实践的了解,需要团队提供了全球化的支持,通过我们全球产品技术专家充分传递了各区域的本地化支持和实践 而且近年来我们发现一些国家和政府,陆续都在推出一些新的税改和合规的要求,接下来基于这些要求,我们全球... 阅读详情

相关推荐

VMFS数据存储(datastore)丢失后恢复步骤

vmfs datastore恢复步骤

jetliu05的博客 3271

js数组与数组函数

索引数组 var arr1 = []; //定义一个空数组 arr1[0] = 1; //向空数组中添加元素 arr1[1] = "hello"; arr1[2]=true; //可向数组中添加任意类型的数据,即混合数组 // 第二种创建空数组的方法 var arr2 = new Array(); //创建数组的同时初始化 var arr3 = [1,2,3]; var arr4...

qq_45122293的博客 475

第12章 STM32+BH1750光照传感器+OLED模块显示环境光照强度

相比光敏传感器,它可以直接输出环境光照强度的数值(范围是0~65535lx),非常适合懒人党,各位的传感器买到手后,赶紧跟着文章试试吧!

qq_44645742的博客 1万+

js基础实现-统计数组中每个值出现的次数

统计数组中每个值出现的次数 使用知识:数组的基本操作 知识点: 数组的forEach方法、findIndex方法 需求:统计数组中每个值出现的个数 显示为[{name:福建省, num:1}] // 需求:统计数组中每个值出现的个数 显示为[{name:福建省, num:1}] const arr = ['天津市','广东省','河南省','福建省','广东省','福建省','福建省','广东省','天津市','陕西省','福建省','贵州省','福建省','广东省','天津市','福建省

不会写代码的前端 1354

arcgis建筑数据的矢量化(一)

简单来说,建筑数据的获取无外乎是矢量化和去网站下载 无奈的是,osm和网上的建筑数据只有全国的主要城市,实在是为难我们这些小城市的,百度和天地图上是有建筑数据,无奈人家不要开放下载啊,所以就只能矢量化咯, 矢量化,无外乎手动和自动,手动就是新建shp面手动勾绘,这里就不讲了,我们来看看自动矢量化 自动矢量化在arcgis中主要是利用arcscan和栅格转面(栅格转面这个效果真是一言难尽,所以我们主要讨论arcscan) 同时我们矢量化也不一定要局限于arcgis...

Jasenjane的博客 3928

Multisim新手必看:从零搭建数字时钟仿真电路(附完整原理图)

本文详细介绍了如何使用Multisim从零开始搭建数字时钟仿真电路,涵盖晶振电路设计、计数电路实现、校时功能配置等关键步骤。通过完整的原理图和实用技巧,帮助新手快速掌握Multisim仿真设计,实现精准的数字时钟功能。

ios99的博客 330

练习课(2)

练习一:打印出100-200之间的所有素数 注:素数就是除了1和自己本身,其他都不能整除的数。 思路:就拿这些数对2到(这些数-1)之间的数进行取模,如果等于0,则表示不是素数,如果不等于0,则是素数。 public class Ex07{ public static void main(String args[]){ int i,j; for(i=1

longshan_2009的专栏 596

【踩坑记录】colmap中的相机位姿的坐标系定义及其可视化结果的隐含转换

1 坐标系定义及转换   首先介绍一下世界坐标系和相机坐标系之间的转换,它们之间是存在一个转换关系的。现假设空间中一点X,它在相机坐标系下的坐标是Xcamera,在世界坐标系下的坐标是Xworld。假设它通过R和t实现从相机坐标系到世界坐标系之间的转换: Xworld = RXcamera + t   那么,由上式,我们可以推得从世界坐标系向相机坐标系的转换关系(RT=R-1,所以通常直接使用RT即可): Xcamera = RTXworld - RTt   所以,两个坐标系之间的转换,需要看其具体

zeeq的博客 2万+

实用:python随机产生2组各10个数字的列表,统计重复和不重复数字(集合练习)

随机产生2组各10个数字的列表,如下要求: 每个数字取值范围:[10,20] 统计20个数字中,一共有多少个不同的数字? 对比2组中,不重复的数字有几个,分别是什么?(不考虑本组中的重复数字) 对比2组中,重复的数字有几个,分别是什么?(不考虑本组中的重复数字) import random lst = [] for i in range(2): lst.append([random.ra...

Mankey_24的博客 6207

Allegro基本规则设置指导书之Analysis Modes

On-line DRC是需要开启的,否则所有DRC都不起作用。调出Analysis Modes,这个是所有DRC的总开关。默认是关闭的,可以用来检查孔是否打在SMD的pin上的情况。器件超出package keepin的DRC开关。所有间距相关的DRC开关都要打开。Pad和Pad连接的DRC开关。测试点Pad到器件DRC开关。测试点在器件下方的DRC开关。阻焊到Pad和线的DRC开关。阻焊到shape的DRC开关。下面介绍常用的一些开关设置。器件在器件禁布的DRC开关。测试点到器件的DRC开关。

weixin_54787054的博客 3544

【芯片设计- 芯片生产及测试 11.2 -- memory repair 详细介绍】

SoC (System on Chip) 的 Memory Repair 是一种技术,用于检测和修复内存中的损坏单元。由于SoC内部集成了大量的逻辑和存储单元,包括RAM(随机访问存储器)、ROM(只读存储器)、缓存等,在制造过程中,由于工艺偏差或材料缺陷,有可能产生一些损坏的内存位。Memory Repair 机制允许系统检测这些错误并采取措施纠正,以提高芯片的产量和可靠性。

CodingCos的博客 3226

数组操作的方法总结汇总

数组常用操作方法大全,unshift、shift、push、pop、splice、split、sort、reverse、indexOf、findIndex、reduce、every、some、map、forEach等各种操作总结汇总

qq_37485170的博客 1505

【nvidia-B200 生产环境】NVIDIA 570.124.06+Cuda12.8 Ubuntu22.04 nccl-test 一键部署脚本(免修改复制即用)

目录1. 初始化与日志记录2. 安装基础工具与配置更新3. NVIDIA 驱动安装 570.124.064. 安装 Mellanox OFED 24.10-2.1.8.05. 安装 CUDA 12.86. 安装 NCCL 和测试7. 配置 rc.local 和其他优化8. B200 单独步骤9. 最终测试与重启10. 完整生产脚本,复制即可直接使用总结 功能: 设置日志目录和日志文件路径。 使用 命令将标准输出和错误输出同时写入日志文件和终端。 记录脚本开始时间,并计算开始的秒数

jundao1997的专栏 2799

js数组练习

JS数组练习题 1.随机生成一个五位以内的数,然后输出该数共有多少位,每位分别是什么 // 第一种 /* var arr1=[]; var bool=false; var str=&quot;&quot;; var num=0; for(var i=0;i&amp;lt;4;i++){ arr1[i]=parseInt(Math.random()*10); ...

weixin_44701816的博客 454

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

JS--数组练习

//案例1:求数组中所有元素的和 var arr1 = [10,20,30,40,50]; var sum1 = 0; for(var i = 0; i < arr1.length; i++){ sum1 += arr1[i]; } console.log(sum1); //案例2:求数组中所有元素的平均值 var arr2 = [1,2,3,4,5]; var sum2 = 0; for...

Binglili0809的博客 351

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

JS.数组练习题

JS.数组练习题

m0_74350516的博客 909

efm32 入门.pdf

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

js数组小练习

1.练习,数组存着一组对象,提取年龄大于18的对象,并把它们放进一个新的数组 <script type="text/javascript"> //script练习,提取年龄大于18的对象,并把它们放进一个新的数组 function Person(name, age, gender){ this.name = name; this.age = age; this.gender = gender; } var per = new Person("小王"

weixin_44154094的博客 654

js 数组从头添加到数组_编码练习:从头开始构建JavaScript数组方法

js 数组从头添加到数组 There's no better way to ensure that you understand how something works than building you're own version from scratch. In this article we are going to do just that by creating our own v...

culiu9261的博客 945

JavaScript数组练习题

JavaScript数组方面的练习题,非常详细的练习题,对于新手学习JavaScript数组非常有帮助哦!

qq_58492621的博客 3313

javascript经典练习题-数组篇

要求数组中的每个元素向右“移动”指定的次数。比如,给定 [1, 2, 3, 4, 5],右移 2 次后数组应变成 [4, 5, 1, 2, 3]描述:给定一个数组以及一个目标值,需要从该数组中找出所有两数之和等于目标值的数对,并以二维数组的形式输出这些符合条件的数对。描述:素数是指大于1的自然数,除了1和它本身外,不能被其他自然数整除的数。例如[1, [2, [3, 4]]]转为[1, 2, 3, 4]‌。描述:取交集的意思是找出两个数组中都存在的元素,并且确保最终结果中的每个元素都是唯一的。

Hi_MrXiao的博客 429

JavaScript —— JSchallenger Arrays 数组练习(测试一下你的 JS 数组基础)【专题二】

文章目录JavaScript 数组练习1. 返回数组 a 的第 n 个元素2. 删除数组 a 的前三个元素,并返回结果3. 提取数组 a 的后三个元素,并返回结果4. 提取数组 a 的前三个元素,并返回结果5. 以数组 a 和 数字 n 为参数,返回 a 的最后 n 个元素6. 以数组 a 和 数组 b 为参数,清除 a 中出现的所有 b(2 和 '2'没区别的情况下),过滤后返回数组 JavaScript 数组练习 1. 返回数组 a 的第 n 个元素 Test: myFunction([1, 2,

HuoZhiyan 的博客 1519

11.23js数组并练习

栓Q

weixin_73499594的博客 146

js高阶数组练习题

6.数组map()⽅法:给定⼀个包含数字的数组,使⽤map()⽅法将其中的每个数字都加上 10,并返回⼀个新的数组。2.数组filter()⽅法:给定⼀个包含字符串的数组,筛选出其中所有⻓度⼤于 5 的字符串,并返回⼀个新的数组。5.数组forEach()⽅法:给定⼀个包含数字的数组,使⽤forEach()⽅法将数组中的每个数字都乘以2。7.数组reduce()⽅法:给定⼀个包含数字的数组,使⽤reduce()⽅法计算所有数字的和。

m0_72189003的博客 383

JavaScript学习之数组(一维数组、二维数组)及练习

JavaScript数组数组数组的含义如何定义数组如何访问数组元素一维数组二维数组 数组 数组的含义 数组:是类型相同的数据的集合。 如何定义数组 方式一: 数组名 = new Array([数组的长度]) 例如: var arr = new Array(); //创建数组 var arr1=new Array(5) //创建一个具有5个单元的数组 方式二: 数组名 = [] 例如: var arr=[] //创建一个空数组 var arr = [1,2,3,4] //可在创建数

星河梦~的博客 2083

JS数组 编程练习 使用Javascript语言,把以下数组 在页面显示如下图所示的图案

编程练习 使用Javascript语言,把以下数组    var  arr = ['*','##',"***","&&","****","##*"];    arr[7] = "**"; 在页面显示如下图所示的图案: * ** *** ****  任务 第一步:定义一个数组,存储要展示的图形。 提示: var

云上 1231

JS练习——数组

最近做项目的时候,前端的同事问了一些javascript相关的问题,然后。。。我发现自己对于javascript了解的太少了,趁着3分钟的热度,找了一些简单的题目用于练习。 查找数组元素位置 题目描述: 找出元素 item 在给定数组 arr 中的位置 输出描述: 如果数组中存在 item,则返回元素在数组中的位置,否则返回 -1 输入 [ 1, 2, 3, 4 ], 3 输出 2 f...

梦里逆天的博客 529
上一篇: JS内存模型
下一篇: JavaScript字符串的练习
风或许自媒体
博客等级 码龄12年 76粉丝 35原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值