精华内容
下载资源
问答
  • 对于一个数组,要调换它奇数位和偶数话,我们有很多种方法,我这里呢想到了两种简单易懂方法,也让初学者易于接受方法。我着重描述第二种方法吧。有什么不合理地方呢,还请大家受累指教! 方法1. ...

    输入一个整数数组,实现一个函数,来调整该数组中数字的顺序使得数组中所有的奇数位于数组的前半部分,所有偶数位于数组的后半部分。


    对于一个数组,要调换它的奇数位和偶数位的话,我们有很多种方法,我这里呢想到了两种简单易懂的方法,也是让初学者易于接受的方法。我着重描述第二种方法吧。有什么不合理的地方呢,还请大家受累指教!
    方法1.
    在给出了一个已知的数组后,我们再 定义一个新的数组,用来存放我们调换位置过后的数组的元素,既然题目要求我们将奇数位和偶数位分开来放,那我们就将奇数和偶数分别拿出来,按照奇数位在前,偶数位在后的顺序,放到新建的数组当中即可。
    方法2.
    我们不用创建新的数组,这里要用到的方法就是在原本数组当中进行位置的重新排序。
    我这里为了排序后的数组便于观察,根据排序后的数组arr【】={0123456789},这样子的话排序前的数组就为arr【】={0516273849},这样子这个数组的奇数位是01234,偶数位是56789,正确排序后的结果清晰可见,这个地方大家可以根据自己的爱好随便设计数字顺序。但是如何将这个数组进行排序呢?
    首先,第一位0是奇数位,它就不用移动了,所以我们要移动的就是剩下的4个奇数位。
    下面一个奇数位是arr【2】=1,它要和arr【1】=5进行交换位置。

    int tmp = arr[2];
         arr[2] = arr[1]; 
         arr[1] = tmp;

    下面一个奇数位是arr【4】,它要和arr【3】进行交换位置;然后arr【3】再和arr【2】交 换位置。

     int tmp = arr[4];
         arr[4] = arr[3]; 
         arr[3] = tmp;
    
         int tmp = arr[3];
         arr[3] = arr[2]; 
         arr[2] = tmp;
     下面一个奇数位是arr【6】,它要和arr【5】进行交换位置;然后arr【5】再和arr【4】交换位置;然后arr【4】再和arr【3】交换位置。
    
    int tmp = arr[6];
         arr[6] = arr[5]; 
         arr[5] = tmp;
    
         int tmp = arr[5];
         arr[5] = arr[4]; 
         arr[4] = tmp;
    
         int tmp = arr[4];
         arr[4] = arr[3]; 
         arr[3] = tmp;
    

    这样子做思路清晰,可以看出什么代码都有一个规律,我们总结出以下循环代码:

    int arr[]={0,5,1,6,2,7,3,8,4,9};
        int size=sizeof(arr)/sizeof(arr[0]);
        int i = 0;
        for(i=2;i<=size-2;i+=2)
        {
            int j = i;
            for(j=i;j>(i/2);j--)
            {
            int tmp = arr[j];
             arr[j] = arr[j-1];
             arr[j-1] = tmp;
            }
    
        }

    我用的是比较简单原始的方式,感觉挺low的,都有点拿不出手,不过肯定有其他大佬想出高大上的代码,希望大家共同学习共同分享,大家一起进步岂不是美滋滋!

    展开全文
  • 「查漏补缺」HTML与CSS进阶前言本文主要介绍H5新增内容以及CSS3中新特性。在H5方面主要介绍拓展了...两个概念:一个新版本HTML语言,定义了新标签、特性属性拥有一个强大技术集,这些技术集指:HTM...
    e3decc80e96f15011c47930f347e5ad8.png

    「查漏补缺」HTML与CSS进阶

    前言

    本文主要介绍H5新增内容以及CSS3中的新特性。在H5方面主要介绍拓展了哪些内容,CSS3方面介绍动画及转换。

    H5新增内容

    「1. 什么是HTML5」

    • 定义:HTML5定义了HTML标准的最新版本,是对HTML的第五次重大修改,号称下一代的HTML。
    • 两个概念:
      • 是一个新版本的HTML语言,定义了新的标签、特性和属性
      • 拥有一个强大的技术集,这些技术集是指:HTML5、CSS3、JavaScript,这也是广义上的HTML5。

    「2. HTML5拓展了哪些内容」

    • 语义化标签
    • 本地存储
    • 兼容特性
    • 2D、3D
    • 动画、过渡
    • CSS3特性
    • 性能与集成

    「3. HTML5的现状」

    绝大多数新的属性,都已经被浏览器所支持,最新版本的浏览器已经开始陆续支持最新的特性,总的来说:HTML5已经是大势所趋。

    HTML5新增标签

    「1. 什么是语义化」

    语义化是指用HTML写出符合内容的结构化(内容语义化),选择合适的标签(代码语义化),能够便于开发者阅读和写出更优雅的代码的同时让浏览器的爬虫和机器很好地解析。

    「2. 新增了哪些语义化标签」

    • header   ---  头部标签
    • nav        ---  导航标签
    • article ---   内容标签
    • section ---   块级标签
    • aside     ---   侧边栏标签
    • footer   ---   尾部标签

    a3d93147bb71a8aa062a63a8f5beff56.png「3. 新增多媒体音频标签」

    • 多媒体标签有两个,分别是音频 audio和视频video
    • audio 标签说明
      • 可以在不使用标签的情况下,也能够原生的支持音频格式文件的播放,
      • 但是:播放的格式是有限的。
    • audio支持的音频格式
    764193497cd3e1414af52dbb93ce5a49.png
    • audio 的参数
    2b8226e7e4bdf84037db37b2efbcf847.png
    <audio controls>
        
        
                                     
      <source src="myAudio.mp3" type="audio/mpeg">
      <source src="myAudio.ogg" type="audio/ogg">
      <p>Your browser doesn't support HTML5 audio. Here is
         a <a href="myAudio.mp4">link to the audioa> instead.p>
    audio>

    「4. 新增多媒体视频标签」

    • video视频标签目前支持三种格式
    242d2846712dfcaf81282c3e7a91f8a5.png
    • 语法格式
    <video src="./media/video.mp4" controls="controls">video>
    • video的参数
    c9f01be9cf2a945258b7edcf8bff03c7.png
    • video代码演示
    <body>
      

      
      <video controls="controls" autoplay muted loop poster="./media/pig.jpg">
        <source src="./media/video.mp4" type="video/mp4">
        <source src="./media/video.ogg" type="video/ogg">
      video>
    body>
    • 多媒体标签总结
      • 音频标签和视频标签使用基本一致
      • 多媒体标签在不同浏览器下情况不同,存在兼容性问题
      • 谷歌浏览器把音频和视频标签的自动播放都禁止
      • 谷歌浏览器中视频添加muted属性就可以自己播放了
      • 注意:重点记住使用方法及自动播放即可,其他属性在使用时查找对应的手册

    「5. 新增input标签」

    af14808d0d1bcdeff9ce553483ea7fb6.png「6. 新增表单属性」

    d67dba4e4469f1a9f11b37c903aa185a.png

    CSS3新增

    「1. CSS3属性选择器」

    f7fbc4fa5d774a0f07b3005a9b6411b4.png
      button {
        cursor: pointer;
      }
      button[disabled] {
        cursor: default;
      }
      input[type=search] {
        color: skyblue;
      }

      span[class^=black] {
        color: lightgreen;
      }

      span[class$=black] {
        color: lightsalmon;
      }

      span[class*=black] {
        color: lightseagreen;
      }

    「2. 结构伪类选择器」

    25b75d5e8bdfee7686b14fe05db8eef3.png
    ul li:first-child {
      background-color: lightseagreen;
    }

    ul li:last-child {
      background-color: lightcoral;
    }

    ul li:nth-child(3) {
      background-color: aqua;
    }
    • nth-child(n)参数n详解
      • 注意:本质上就是选中第几个子元素
      • n 可以是数字、关键字、公式
      • n 如果是数字,就是选中第几个
      • 常见的关键字有 even 偶数、odd 奇数
      • 常见的公式如下(如果 n 是公式,则从 0 开始计算)
      • 但是第 0 个元素或者超出了元素的个数会被忽略
    ff3055ad6128767b22e7fcf6b6359e05.png
    <style>
      /* 偶数 */
      ul li:nth-child(even) {
        background-color: aquamarine;
      }

      /* 奇数 */
      ul li:nth-child(odd) {
        background-color: blueviolet;
      }

      /*n 是公式,从 0 开始计算 */
      ul li:nth-child(n) {
        background-color: lightcoral;
      }

      /* 偶数 */
      ul li:nth-child(2n) {
        background-color: lightskyblue;
      }

      /* 奇数 */
      ul li:nth-child(2n + 1) {
        background-color: lightsalmon;
      }

      /* 选择第 0 5 10 15, 应该怎么选 */
      ul li:nth-child(5n) {
        background-color: orangered;
      }

      /* n + 5 就是从第5个开始往后选择 */
      ul li:nth-child(n + 5) {
        background-color: peru;
      }

      /* -n + 5 前五个 */
      ul li:nth-child(-n + 5) {
        background-color: tan;
      }
    style>
    • nth-child与nth-of-type区别
      • nth-child  选择父元素里面的第几个子元素,不管是第几个类型
      • nth-of-type  选择指定类型的元素
    <style>
      div :nth-child(1) {
        background-color: lightblue;
      }

      div :nth-child(2) {
        background-color: lightpink;
      }

      div span:nth-of-type(2) {
        background-color: lightseagreen;
      }

      div span:nth-of-type(3) {
        background-color#fff;
      }
    style>

    「3. 伪元素选择器」

    4907418c18f2d47ace0e040f14c98ce2.png
    • 伪元素选择器注意事项
      • beforeafter 必须有 content 属性
      • before 在内容前面,after 在内容后面
      • beforeafter 创建的是一个元素,但是属于行内元素
      • 创建出来的元素在 Dom 中查找不到,所以称为伪元素
      • 伪元素和标签选择器一样,权重为 1
    <style>
        div {
          width100px;
          height100px;
          border1px solid lightcoral;
        }

        div::after,
        div::before {
          width20px;
          height50px;
          text-align: center;
          display: inline-block;
        }
        div::after {
          content'德';
          background-color: lightskyblue;
        }

        div::before {
          content'道';
          background-color: mediumaquamarine;
        }
      style>
    伪元素字体图标
    p {
       position: relative;
       width220px;
       height22px;
       border1px solid lightseagreen;
       margin60px;

    }
    p::after {
      content'\ea50';
      font-family'icomoon';
      position: absolute;
      top: -1px;
      right10px;
    }

    「4. 2D 转换之translate」

    • 2D转换
      • 2D转换是改变标签在二维平面上的位置和形状
      • 移动:translate
      • 旋转:rotate
      • 缩放:scale
    • translate语法
      • x就是X轴上水平移动
      • y就是y轴上水平移动
      transformtranslate(xy)
      transformtranslateX(n)
      transfromtranslateY(n)  
    • 重点知识点
      • 2D的移动主要是指水平、垂直方向上的移动
      • translate最大的优点就是不影响其他元素的位置
      • translate中的100%单位,是相对于本身的宽度和高度来进行计算的
      • 行内标签没有效果
    div {
      background-color: lightseagreen;
      width200px;
      height100px;
      /* 平移 */
      /* 水平垂直移动 100px */
      /* transform: translate(100px, 100px); */

      /* 水平移动 100px */
      /* transform: translate(100px, 0) */

      /* 垂直移动 100px */
      /* transform: translate(0, 100px) */

      /* 水平移动 100px */
      /* transform: translateX(100px); */

      /* 垂直移动 100px */
      transformtranslateY(100px);
      /*百分比用法*/
      transformtranslateY(100%);   
    }
    让一个盒子水平垂直居中
    div {
        position: relative;
        width500px;
        height500px;
        background-color: pink;
        /* 1. 我们tranlate里面的参数是可以用 % */
        /* 2. 如果里面的参数是 % 移动的距离是 盒子自身的宽度或者高度来对比的 */
        /* 这里的 50% 就是 50px 因为盒子的宽度是 100px */
        /* transform: translateX(50%); */
        }
            
    p {
        position: absolute;
        top50%;
        left50%;
        width200px;
        height200px;
        background-color: purple;
        /1.* margin-top: -100px;
        margin-left: -100px; */
      
        /2.* translate(-50%, -50%)  
          盒子往上走自己高度的一半   */
        transformtranslate(-50%, -50%);
      }
            
    span {
        /* translate 对于行内元素是无效的 */
        transformtranslate(300px, 300px);
         }

    「5. 2D 转换之rotate」

    • rotate旋转
      • 2D旋转指的是让元素在二维平面内顺时针或者逆时针旋转
    /* 单位是:deg */
    img:hover {
      transformrotate(360deg)
    }
    • rotate语法
      • rotate 里面跟度数,单位是 deg
      • 角度为时,顺时针,角度为负时,逆时针
      • 默认旋转的中心点是元素的中心点
    • 设置元素旋转的中心的(transform-origin)
      transform-originx y;
    • 注意
      • 后面的参数 x 和 y 用空格隔开
      • x y 默认旋转的中心点是元素的中心(50% 50%),等价于center center
      • 还可以给x y 设置像素或者方位名词(top、bottom、left、right、center)

    「6. 2D 转换之scale」

    • scale的作用:用来控制元素的放大与缩小
    transformscale(xy)
    • 知识要点:
      • 注意,x与y之间用逗号进行分隔
      • transform: scale(1, 1): 宽高都放大一倍,相当于没有放大
      • transform: scale(2, 2): 宽和高都放大了二倍
      • transform: scale(2): 如果只写了一个参数,第二个参数就和第一个参数一致
      • transform:scale(0.5, 0.5): 缩小
      • scale 最大的优势:可以设置转换中心点缩放,默认以中心点缩放,而且不影响其他盒子
       div:hover {
        /* 注意,数字是倍数的含义,所以不需要加单位 */
        /* transform: scale(2, 2) */
       
        /* 实现等比缩放,同时修改宽与高 */
        /* transform: scale(2) */
       
        /* 小于 1 就等于缩放*/
        transformscale(0.5, 0.5)
       }

    「7. 2D 转换综合写法以及顺序问题」

    知识要点
    • 同时使用多个转换,其格式为 transform: translate() rotate() scale()
    • 顺序会影响到转换的效果(先旋转会改变坐标轴方向)
    • 当我们同时有位置或者其他属性的时候,要将位移放到最前面
    div:hover {
      transformtranslate(200px, 0) rotate(360deg) scale(1.2)
    }

    动画(animation)

    「动画」是CSS3中最具颠覆性的特征之一,可通过设置多个节点来精确的控制一个或者一组动画,从而实现复杂的动画效果。

    「动画的使用」

    1. 定义动画
    2. 调用定义好的动画
    /*1. 定义动画*/
    @keyframes 动画名称 {
        0% {
            width100px;
        }
        100% {
            width200px
        }
    }
    div {
     /* 调用动画 */
      animation-name: 动画名称;
      /* 持续时间 */
      animation-duration: 持续时间;
    }

    「动画序列」

    • 0% 是动画的开始,100 % 是动画的完成,这样的规则就是动画序列
    • @keyframs中规定某项 CSS 样式,就由创建当前样式逐渐改为新样式的动画效果
    • 动画是使元素从一个样式逐渐变化为另一个样式的效果,可以改变任意多的样式任意多的次数
    • 用百分比来规定变化发生的时间,或用 fromto,等同于 0% 和 100%
    <style>
        div {
          width100px;
          height100px;
          background-color: aquamarine;
          animation-name: move;
          animation-duration0.5s;
        }

        @keyframes move{
          0% {
            transformtranslate(0px)
          }
          100% {
            transformtranslate(500px, 0)
          }
        }
      style>

    「动画常见属性」

    1c2ea2b76c6370d4bec15ae25d680323.png
    div {
      width100px;
      height100px;
      background-color: aquamarine;
      /* 动画名称 */
      animation-name: move;
      /* 动画花费时长 */
      animation-duration2s;
      /* 动画速度曲线 */
      animation-timing-function: ease-in-out;
      /* 动画等待多长时间执行 */
      animation-delay2s;
      /* 规定动画播放次数 infinite: 无限循环 */
      animation-iteration-count: infinite;
      /* 是否逆行播放 */
      animation-direction: alternate;
      /* 动画结束之后的状态 */
      animation-fill-mode: forwards;
    }

    div:hover {
      /* 规定动画是否暂停或者播放 */
      animation-play-state: paused;
    }

    「动画简写方式」

    /* animation: 动画名称 持续时间 运动曲线 何时开始 播放次数 是否反方向 起始与结束状态 */
    animationname duration timing-function delay iteration-count direction fill-mode

    知识要点

    • 简写属性里面不包含 animation-paly-state
    • 暂停动画 animation-paly-state: paused; 经常和鼠标经过等其他配合使用
    • 要想动画走回来,而不是直接调回来:animation-direction: alternate
    • 盒子动画结束后,停在结束位置:animation-fill-mode: forwards
    animationmove 2s linear 1s infinite alternate forwards;

    「速度曲线细节」

    animation-timing-function: 规定动画的速度曲线,默认是ease

    d07c95fe7b449325a05aecd1723788eb.png
    /*打字机效果*/
    div {
      width0px;
      height50px;
      line-height50px;
      white-space: nowrap;
      overflow: hidden;
      background-color: aquamarine;
      animation: move 4s steps(24) forwards;
    }

    @keyframes move {
      0% {
        width0px;
      }

      100% {
        width480px;
      }
    }

    CSS 过渡transition

    通过过渡transition,可以让web前端开发人员不需要javascript就可以实现简单的动画交互效果。

    深入理解CSS过渡transition
    https://www.cnblogs.com/xiaohuochai/p/5347930.html

    「定义」过渡transition是一个复合属性,包括transition-propertytransition-durationtransition-timing-functiontransition-delay这四个子属性。通过这四个子属性的配合来完成一个完整的过渡效果。

    transition-property: 过渡属性(默认值为all)
    transition-duration: 过渡持续时间(默认值为0s)
    transiton-timing-function: 过渡函数(默认值为ease函数)
    transition-delay: 过渡延迟时间(默认值为0s)
    .test{
        height100px;
        width100px;
        background-color: pink;
        transition-duration3s;
    /*     以下三值为默认值,稍后会详细介绍 */
        transition-property: all;
        transition-timing-function: ease;
        transition-delay0s;
    }    
    .test:hover{
        width500px;
    }
    ~~~html
    <div class="test">div>
    acbc5d91f641cb6d9bdf0b2f66ab29cf.gif

    「复合属性」过渡transition的这四个子属性只有是必需且不能为0。其中,和都是时间。当两个时间同时出现时,第一个是,第二个是;当只有一个时间时,它是,而为默认值0s

    • 注意:
      • transition的这四个子属性之间不能用逗号隔开,只能用空格隔开。因为逗号隔开的代表不同的属性(transition属性支持多值,多值部分稍后介绍);而空格隔开的代表不同属性的四个关于过渡的子属性。
    .test{
        height100px;
        width100px;
        background-color: pink;
    /*代表持续时间为2s,延迟时间为默认值0s*/
        transition;2s;
    }    
    .test:hover{
        width500px;
    }
    <div class="test">div>

    acbc5d91f641cb6d9bdf0b2f66ab29cf.gif延迟时间delay 案例

    .test{
        height100px;
        width100px;
        background-color: pink;
        /*代表持续时间为1s,延迟时间为2s*/
        transition1s 2s;
    }    
    .test:hover{
        width500px;
    }
    <div class="test">div>
    9d1cdfa33d3332f9f4861c1ed9f39bea.gif

    「过渡属性」

    • 值: none | all | [,]
    • 初始值: all
    • 应用于: 所有元素
    • 继承性: 无
      none: 没有指定任何样式
      all: 默认值,表示指定元素所有支持transition-property属性的样式
      <transition-property>: 可过渡的样式,可用逗号分开写多个样式
    5788b5275e0860c8b3f13c60900f1bf3.gif

    「过渡持续时间」

    • 值: [,]*
    • 初始值: 0s
    • 应用于: 所有元素
    • 继承性: 无
    • [注意]该属性不能为负值
    • [注意]若该属性为0s则为默认值,若为0则为无效值。所以必须带单位
    • [注意]该值为单值时,即所有过渡属性都对应同样时间;该值为多值时,过渡属性按照顺序对应持续时间
    /*DEMO中的过渡属性值*/
    transition-propertywidth,background;

    eff1172da5eb29553c32695b5f8d7bff.gif「过渡时间函数」

    过渡时间函数用于定义元素过渡属性随时间变化的过渡速度变化效果

    • 值: [,]*
    • 初始值: ease
    • 应用于: 所有元素
    • 继承性: 无

    「取值」 过渡时间函数共三种取值,分别是关键字steps函数bezier函数

    「关键字」其实是bezier函数或steps函数的特殊值

    ease: 开始和结束慢,中间快。
    linear: 匀速。
    ease-in: 开始慢。
    ease-out: 结束慢。
    ease-in-out: 和ease类似,但比ease幅度大。

    3D转换

    认识3D转换

    「3D的特点」近大远小,物体和面遮挡不可见

    「三维坐标系」

    • x 轴:水平向右  -- 注意:x 轴右边是正值,左边是负值
    • y 轴:垂直向下  -- 注意:y 轴下面是正值,上面是负值
    • z 轴:垂直屏幕  --  注意:往外边的是正值,往里面的是负值
    2e501a3d2ae96bfcbce653cd1861f5b4.png

    3D转换

    1.  3D 转换知识要点

    • 3D 位移:translate3d(x, y, z)
    • 3D 旋转:rotate3d(x, y, z)
    • 透视perspctive
    • 3D呈现 transfrom-style

    2.  3D 移动translate3d

    • 3D 移动就是在 2D 移动的基础上多加了一个可以移动的方向,就是 z 轴方向
    • transform: translateX(100px):仅仅是在 x 轴上移动
    • transform: translateY(100px):仅仅是在 y 轴上移动
    • transform: translateZ(100px):仅仅是在 z 轴上移动
    • transform: translate3d(x, y, z):其中x、y、z 分别指要移动的轴的方向的距离
    • 注意:x, y, z 对应的值不能省略,不需要填写用 0 进行填充
      transform: translate3d(100px, 100px, 100px)
      /* 注意:x, y, z 对应的值不能省略,不需要填写用 0 进行填充 */
      transform: translate3d(100px, 100px, 0)

    透视perspective

    • 知识点讲解

      • 如果想要网页产生 3D 效果需要透视(理解成 3D 物体投影的 2D 平面上)
      • 实际上模仿人类的视觉位置,可视为安排一只眼睛去看
      • 透视也称为视距,所谓的视距就是人的眼睛到屏幕的距离
      • 距离视觉点越近的在电脑平面成像越大,越远成像越小
      • 透视的单位是像素
    • 知识要点

      • 透视需要写在被视察元素的父盒子上面
      • 注意下方图片
      • d:就是视距,视距就是指人的眼睛到屏幕的距离
      • z:就是 z 轴,z 轴越大(正值),我们看到的物体就越大

    e5bbb9d799da93377794a09d001dc734.png代码演示

    body {
      /*透视需要写在被视察元素的父盒子上面 */
      perspective1000px;
    }

    translateZ与perspective的区别

    • perspecitve 给父级进行设置视距的,translateZ 给 子元素进行设置不同的大小

    3D 旋转rotateX

    3D 旋转指可以让元素在三维平面内沿着 x 轴、y 轴、z 轴 或者自定义轴进行旋转

    • 语法:
      • transform: rotateX(45deg) -- 沿着 x 轴正方向旋转 45 度
      • transform: rotateY(45deg) -- 沿着 y 轴正方向旋转 45 度
      • transform: rotateZ(45deg) -- 沿着 z 轴正方向旋转 45 度
      • transform: rotate3d(x, y, z, 45deg) -- 沿着自定义轴旋转 45 deg 为角度
    • 左手法则:
      • 左手的手拇指指向 x 轴的正方向
      • 其余手指的弯曲方向就是该元素沿着 x 轴旋转的方向
    b2d2594e6be880499a269b981ad5ccdb.png
    div {
      /*透视写在被视察元素的父盒子上面 */
      perspective300px;
    }
    /*被观察元素*/
    img {
      display: block;
      margin100px auto;
      transition: all 1s;
    }

    img:hover {
      transformrotateX(-45deg)
    }

    3D 旋转rotateY

    • 左手法则:
      • 左手的拇指指向 y 轴的正方向
      • 其余的手指弯曲方向就是该元素沿着 y 轴旋转的方向(正值)
    a895fef3324602c26e73e1633004f825.png
    div {
      perspective500px;
    }

    img {
      display: block;
      margin100px auto;
      transition: all 1s;
    }

    img:hover {
      transformrotateY(180deg)
    }

    3D 旋转rotateZ

    div {
      perspective500px;
    }

    img {
      display: block;
      margin100px auto;
      transition: all 1s;
    }

    img:hover {
      transformrotateZ(180deg)
    }

    「rotate3d」

    • transform: rotate3d(x, y, z, deg) -- 沿着自定义轴旋转 deg 为角度
    • x, y, z 表示旋转轴的矢量,是标识你是否希望沿着该轴进行旋转,最后一个标识旋转的角度
      • transform: rotate3d(1, 1, 0, 180deg) -- 沿着对角线旋转 45deg
      • transform: rotate3d(1, 0, 0, 180deg) -- 沿着 x 轴旋转 45deg
    div {
      perspective500px;
    }

    img {
      display: block;
      margin100px auto;
      transition: all 1s;
    }

    img:hover {
      transformrotate3d(1, 1, 0, 180deg)
    }

    3D呈现transform-style

    • 控制子元素是否开启三维立体环境
    • transform-style: flat  代表子元素不开启 3D 立体空间,默认的
    • transform-style: preserve-3d 子元素开启立体空间
    • 代码写给父级,但是影响的是子盒子
    <body>
        <div class="box">
            <div>div>
            <div>div>
        div>
    body>
    <style>
        body {
            perspective500px;
            }
            
        .box {
            position: relative;
            width200px;
            height200px;
            margin100px auto;
            transition: all 2s;
            /* 让子元素保持3d立体空间环境 */
            transform-style: preserve-3d;
            }
            
        .box:hover {
            transformrotateY(60deg);
        }
            
        .box div {
            position: absolute;
            top0;
            left0;
            width100%;
            height100%;
            background-color: pink;
        }
            
        .box div:last-child {
            background-color: purple;
            transformrotateX(60deg);
        }
    style>
    展开全文
  • 【题目描述】计算1~N之间所有奇数【输入】正整数N【输出】1~N之间所有...那就要对比奇数和偶数的区别与性质,奇数定义不能被2整除数就是奇数,所以说我们用这个数来求余2,如果求余2不等于零说明该数...

    【题目描述】

    计算1~N之间所有奇数之和

    【输入】

    正整数N

    【输出】

    1~N之间所有奇数之和

    【样例输入】

    10

    【样例输出】

    25

    【解题思路】本题要求求1~N之间所有的奇数和,那么首先要干什么?首先要想怎么把这一列数中的奇数筛选出来,然后再什么?然后再累加求和,对吧,那怎么筛选奇数呢?那就要对比奇数和偶数的区别与性质,奇数在定义时是不能被2整除的数就是奇数,所以说我们用这个数来求余2,如果求余2不等于零说明该数是奇数,这就是本题的算法思想。话不多说,上代码!!

    【源代码】

    import java.util.Scanner;

    public class Main {

    public static void main(String[] args) {

    Scanner scanner = new Scanner(System.in);

    int n = scanner.nextInt();

    int sum = Sum(n);

    System.out.println(sum);

    scanner.close();

    }

    public static int Sum(int n) {

    int m = 0;

    for(int i = 0;i <= n;i++) {

    if(i % 2 != 0) {

    m = m + i;

    }

    }

    return m;

    }

    }

    展开全文
  • 计算1~N之间所有奇数(Java)

    万次阅读 2018-11-22 13:44:21
    【题目描述】 计算1~N之间所有奇数 【输入】 正整数N 【输出】 1~N之间所有奇数 ...【解题思路】本题要求求1~N...那就要对比奇数和偶数的区别与性质,奇数定义不能被2整除数就是奇数,所以说我...

    【题目描述】

    计算1~N之间所有奇数之和

    【输入】

    正整数N

    【输出】

    1~N之间所有奇数之和

    【样例输入】

    10

    【样例输出】

    25

     

    解题思路】本题要求求1~N之间所有的奇数和,那么首先要干什么?首先要想怎么把这一列数中的奇数筛选出来,然后再什么?然后再累加求和,对吧,那怎么筛选奇数呢?那就要对比奇数和偶数的区别与性质,奇数在定义时是不能被2整除的数就是奇数,所以说我们用这个数来求余2,如果求余2不等于零说明该数是奇数,这就是本题的算法思想。话不多说,上代码!!

    源代码

    import java.util.Scanner;
    
    public class Main {
    	public static void main(String[] args) {
    		Scanner scanner = new Scanner(System.in);
    		
    		int n = scanner.nextInt();
    		
    		int sum = Sum(n);
    		
    		System.out.println(sum);
    		
    		scanner.close();
    	}
    	public static int Sum(int n) {
    		int m = 0;
    		
    		for(int i = 0;i <= n;i++) {
    			if(i % 2 != 0) {
    				m = m + i;
    			}
    		}
    		return m;
    	}
    
    }

     

    展开全文
  • ”这课本对“奇偶数”的定义,可爸爸妈妈们要是按照课本跟孩子解释什么是奇数什么是偶数,肯定会让孩子一头雾水。为什么?关键在于孩子不能理解抽象性语言。他根本没理解奇偶数的概念,又怎么能学会区分奇偶数呢...
  • 此函数提供列表一起作为过滤器函数参数提供给我们结果。语法filter(filter_function,sequence)示例在下面示例中,我们创建一个函数,该函数将查找列表中存在的偶数。然后它将丢弃它们(返回false)。其余...
  • 首先要了解什么是奇数和偶数,能被二整除整数是偶数,不能被二整除是奇数。 //定义一个Judge类 public class Judge{ //程序主方法 public static void main(String [] args){ //定义一个整型变量num...
  • 1.找变不变量,分析变化量有什么规律,找切入点。 2.分子都1,分母1,2,3…100递增,奇数项为正,偶数项为负 思路: 1.定义一个ret作为输出结果(即表达式值)。 2.将奇数项往ret上加,偶数项往ret...
  • 二进制的定义及运算规则 二进制: 只有01两位数字,每一位我们称为一个bit(比特)。 计算规则: 0+0 = 0,0+1 = 1,1+1 = 10,10+1 = 11 Q1:什么样的二进制数是偶数什么样的二进制数是奇数 0结尾的二...
  • 1. 什么是素数与合数 ...所有大于2的偶数合数; 所有大于5的奇数中,个位为5合数; 除0以外,所有个位为0自然数都合数; 所有个位为4,6,8自然数都合数; 最小(偶)合数为4,最小
  • 分频器

    2021-04-09 09:35:33
    什么要学习时钟分频 FPGA设计中,由于开发板上提供的晶振的频率固定的,所以我们经常会对时钟进行分频倍频,而时钟分频...奇数的分频与偶数相比较为复杂,其中clk_1根据时钟的上升沿对cnt进行判断是否翻转;而c
  • 需要知道素数的定义,知道和奇数的区别 对代码的优化解决掉超时的问题,优化可以从以下考虑 将除了 2 的偶数自动过滤,不参加运算 将每次符合要求的数加入列表,后面的数字只需要和列表中的数进行比较即可,看...
  • 偶数和。 5 2.4 实例演示: 6 2.4.1//判断奇偶数算法。 6 2.4.2&用法 7 2.4.3瑞年判断: 7 2.4.4// 6592 //6//5//9//2 8 2.4.5flag用法: 9 2.4.6while用法: 9 3.1 Break: 10 3.2 Continue: 10 3.3循环嵌套...
  • 二分图判定

    2019-09-02 23:17:20
    有一个等价定义是:不含有「含奇数条边环」图。 以下举一个非二分图例子:(显然这张图含有奇数条边环) 无向图G为二分图充分必要条件是,G至少有两个顶点,且其所有回路长度均为偶数。 概念 什么是...
  • 题意:有一个a序列,要你找一个子序列,结果为奇数位减去偶数的和。求最大。...定义dp[i][0]为前i个数选择了偶数个数最大;dp[i][1]为选择了奇数个数最大。 dp[i][1]=max(dp[i−1][1],dp[i.
  • 这样就不用分开定义 state 初始值 state 类型了。 交换数组指定位置元素位置 从掘金过来,感觉这个项目挺有意思,大家互相学习吧! 分享一下最近get到一个小技巧。交换数组指定位置...
  • 可以设想,这在源程序不公开操作系统中将是什么样子。Linux这种独特自由流畅开发模型已被命名为bazaar(集市模型),它是相对于cathedral(教堂)模型而言。在cathedral模型中,源程序代码被锁定在一个保密...
  • 委托,事件学习进阶

    2013-05-27 00:48:00
    本文不是入门文章,不会从最简单的什么是委托事件开始.只是稍稍深入学习下委托事件,作为记录. 目录:  单例模板文件 委托 事件 个人使用习惯  先说两个蛮经典C#面试题. 1.定义一种过滤器,比如在一...
  • 答:隔行扫描将图像的奇数和偶数行分两场传输,隔行扫描优点减小模拟电视信号占用带宽,技术实现简单,缺点图像显示会有闪烁,使用NTSCPAL规范模拟电视由于带宽限制,故采用隔行扫描。 S2.2 请定义 1...
  • Java 对取余操作符(%)的定义所产生的后果。该操作符被定义为对于所有的 int 数值 a 所有的非零 int 数值 b,都满足下面的恒等式: (a / b) * b + (a % b) == a 换句话说,如果你用b整除a,将商乘以b,...
  • 质数相关

    2017-09-18 10:42:01
    质数的定义:质数(prime number)又称为素数,有无限多个。质数定义在大于1的自然数中,除了1它本身以外不会再有其它因数的数称为质数。(1)从2开始,2最小的质数。(2)除了2之外的偶数全都不是质数,因为...
  • 特殊,质数中只有一个偶数2,其他都是奇数 其他相关知识 对于一个整数N,[1,N]质数大约有N/lnNN/lnNN/lnN个,即每lnNlnNlnN个数中有一个质数 这是什么概念呢?例如N取 1.2 质数判定 2. 筛质数 3. ...
  • 5.28 考试总结

    2016-05-28 20:54:00
    题目中的定义欧拉图简单图 · 也就是没有重边自环 n <= 2000, 我们可以考虑 n 方的dp 设 f[i] 代表,i个点之间连边每个点的度数都为偶数的方案数,则 f[i] = (i-1)*(i-2)/2; 这因为, 对于i-1个点的任意连...
  • 回文树

    2019-12-12 16:01:14
    用途 用于解决一些关于回文的问题,处理回文问题的利器...所以odd代表长度为奇数的回文串,而even代表长度为偶数的回文串。 len为一个点所代表的字符串实际长度。 fail为失配指针,指向最长回文后缀。 构建 考虑我们...
  • 题目大意:给出一个整数集合B,现在可以根据集合B构造一个无向图,规定...题目分析:二分图的定义是不存在奇环,那么在这个题目中什么时候会出现奇环呢?因为顶点的范围是全部整数,最好想法的就是将奇数和偶数分开...
  • 一、实验作业 ...这一题一开始没有什么头绪,后来看到了最后一个式子才发现他们规律这样,所以我一开始打算定义一个flag来讨论n是奇数还是偶数来判断加还是减。然后用了一个pow函数,一开始...
  • 排序算法之堆排序

    2016-09-12 23:57:22
    首先来看一下什么是堆,堆用一个一维数组模拟二叉树结构,即堆数组第一个元素为第二、第三个元素父结点,即第i(i从0开始)个元素第2i+1第2i+2个元素父结点,由此我们可以计算最后一个结点父结点,设...
  • 在MFC框架调用该函数时候,重新定义状态行为; 一般来说,应用程序可以通过以下两种途径来实现以上方法: 1. 在父窗口里,截获自身或者由子元素(包括控件菜单等元素)传递关于界面绘制消息; 2....
  • 4.1.5 用过哪些Map类,都有什么区别,HashMap是线程安全吗,并发下使用Map是什么,他们内部原理分别是什么,比如存储方式,hashcode,扩容,默认容量等。 4.1.6 JAVA8ConcurrentHashMap为什么放弃了分段锁,有...
  •  3、设数列{an}等差数列,项数为m,其奇数项之为S奇,偶数项之和记为S偶,那么当项数m为偶数2n时,S偶-S奇=nd, ;当项数m为奇数2n+1时,S奇-S偶=an+1, .(不必强记这些结论,关键掌握其证法,对于提高...

空空如也

空空如也

1 2 3
收藏数 53
精华内容 21
关键字:

偶数和奇数的定义是什么