主頁 > 後端開發 > C語言程式設計100例之(52):數字序列

C語言程式設計100例之(52):數字序列

2022-01-19 16:45:29 後端開發

例52  數字序列

問題描述

給出了一個正整數i,撰寫一個程式,以查找數字序列S1S2…Sk中位于位置i的數字,每組Sk由一系列從1到k的正整陣列成,

例如,序列的前80位數字如下所示:

11212312341234512345612345671234567812345678912345678910123456789101112345678910

輸入

輸入檔案的第一行包含一個整數t(1≤T≤10),測驗用例的數量,

每個測驗用例占一行,該行包含一個整數i(1≤i≤ 2147483647)

輸出

每個測驗用例輸出一行,其中包含位于位置i的數字,

輸入樣例

2

8

3

輸出樣例

2

2

        (1)編程思路,

        先將整個數字序列112123123412345123456123456712345678123456789…分組如下

        1  12  123  1234  12345  123456  1234567  12345678  123456789…

        設a[i] 表示第i組數字序列的長度,顯然有

        a[1] = 1, a[2] =2, a[3] = 3, …,a[9]=9,a[10]=11,a[11]=13,…,

        通過對比a[i]與a[i+1]發現,當i<9時,a[i+1]=a[i]+1;當10<i<99時,a[i+1]=a[i]+2;

        當100<i<999時,a[i+1]=a[i]+3;…,依次類推,

        用如下的回圈可以求得第n個位置的數字應該在第i組中的位置值pos

          for (i=1, pos=n; a[i]<pos; i++)

               pos=pos-a[i];

        然后求出pos位置值的數字是第i組中的第j個數,并且確定其是第j個數的第幾位,從而得到答案,

        上面定義的a陣列還可用于確定pos位置的數字在某組中的哪一個數中,此時a[i]可表示前i個數的總長度(位數),a[1]=1表示1的長度為1,a[2]=2表示到第2個數的長度為2,即12的位數為2,…,a[11]=13表示到第11個數11的總長度為13,即1234567891011的位數為13,

        例如,要求序列第14個數是多少?

        14-a[1]-a[2]-a[3]-a[4]=4<a[5],因此,第14個數字應該出現在第5組中,且位置值為4,它是第5組的第4個數的第1個數字,所以第14個數字是4,

        再如,要求序列第100個數是多少?

        100-a[1]-a[2]-a[3]-a[4]-a[3]-a[4]-a[5]-a[6]-a[7]-a[8]-a[9]-a[10]-a[11]-a[12]

         =100-(1+2+3+4+5+6+7+8+9+11+13+15) = 16 < a[13],因此,第100個數字應該出現在第13組中,且在該組的位置值為16,而a[12]=15,a[13]=17,因此位置值16的數字應該出現在第13組的第13個數中,并且是第13個數的第16-15=1位,而第13個數13的第1位為1,所以第100個數字是1,

(2)源程式,

#include <stdio.h>

int main()

{

    int  a[31269];  // a[i] 表示第i組數字序列的長度

    int x=1,y=1;

    int i,j;

    for (i=1;i<=31268;i++)

       {

        a[i]=x;

        if (i==9||i==99||i==999||i==9999) y++;

        x+=y;

    }

    int t,n;

    scanf("%d",&t);

    while (t--)

       {

        scanf("%d",&n);

        int pos,index,digit[5],len;

           // 求得第n個位置在第i組中的下標值pos

        for (i=1, pos=n; a[i]<pos; i++)

               pos=pos-a[i];

        j=1;

           // pos位置值的數字是第i組中的第j個數字

        while (a[j]<pos) j++;

        // 第n個位置的數字是數j的第index位

        index=pos-a[j-1];

           len=0;

        while(j)

           {

           digit[len++]=j%10;

           j/=10;

        }

        printf("%d\n",digit[len-index]);

    }

    return 0;

}

習題52

52-1  第N個數字

問題描述

假設:

S1 = 1

S2 = 12

S3 = 123

S4 = 1234

……

S9 = 123456789

S10 = 1234567891

S11 = 12345678912

……

S18 = 123456789123456789

S19 = 1234567891234567891

……

現在我們把所有的串連接起來

S = 1121231234……123456789123456789112345678912……

那么你能告訴我在S串中的第N個數字是多少嗎?

輸入

輸入首先是一個數字T,代表有T次詢問,

接下來的T行每行有一個整數N(1 <= N < 2^31),

輸出

對于每個N,輸出S中第N個對應的數字,

輸入樣例

6

1

2

3

4

5

10

輸出樣例

1

1

2

1

2

4

        (1)編程思路,

        由于數字序列中只是數字1~9回圈,因此本題比例52簡單,

        設a[i] 表示第i組數字序列的長度,顯然有 a[i]=i,先求出第n個數字在第i組,將前面各組的數字個數都減掉,剩余的數就是在第i組的位置,再對這個位置除9取余即可,

        (2)源程式,

#include <stdio.h>

int main()

{

    int t;

    scanf("%d",&t);

    while (t--)

    {

        int n;

        scanf("%d",&n);

        int a=1;   // 第1組1個數

        while (n>a)

        {

          n-=a;    // 減去上面每組的數字個數

          a++;

        }

        n=n%9;

        if(n==0) n=9;

        printf("%d\n",n);

    }

    return 0;

}

52-2  第M個整數

問題描述

將1~n這n個正整數按字典順序進行排序,字典排序的含義為:從最高位開始比較,1開頭的數排在最前面,然后是2開頭的數,然后是3開頭的數,……最高位相同的數字,按同樣的邏輯比較次高位,……,以此類推,

給定一個整數m,回傳排序后第m個整數是多少?

例:給定整數為n=13,m=5,那么字典排序結果為:1,10,11,12,13,2,3,4,5,6,7,8,9,序列中第5個整數為13,

輸入

輸入包括多行,每行是兩個整數N和M(1≤M≤N≤106),

輸出

對每行輸入,輸出一行,該行是第M個整數,

輸入樣例

11 4

200 25

100000000888888879 1000000000

輸出樣例

2

120

100000001

        (1)編程思路,

先觀察一下,若n=210,按字典序排列依次為

1 10 100 101 102 103 104 105 106 107 108 109

11 110 111 112 113 114 115 116 117 118 119

12 120 121 122 123 124 125 126 127 128 129

13 130 131 132 133 134 135 136 137 138 139

14 140 141 142 143 144 145 146 147 148 149

15 150 151 152 153 154 155 156 157 158 159

16 160 161 162 163 164 165 166 167 168 169

17 170 171 172 173 174 175 176 177 178 179

18 180 181 182 183 184 185 186 187 188 189

19 190 191 192 193 194 195 196 197 198 199

2 20 200 201 202 203 204 205 206 207 208 209

21 210 22 23 24 25 26 27 28 29

3 30 31 32 33 34 35 36 37 38 39 4 40 41 42 43 44 45 46 47 48 49

5 50 51 52 53 54 55 56 57 58 59 6 60 61 62 63 64 65 66 67 68 69

7 70 71 72 73 74 75 76 77 78 79 8 80 81 82 83 84 85 86 87 88 89

9 90 91 92 93 94 95 96 97 98 99

        定義b[i]保存位數不超過i的整數的個數,顯然,b[1]=10(即0~9這10個),b[2]=110(即1位的0~9,2位的00~99),b[3]=1110,…,b[10]=11111111110,…,這個數字的作用在于確定以某個數字k開頭的不同位數的個數有多少,例如,要確定以數字1開頭的長度不超過4位的整數有多少個?首先,整數1肯定是一個,置cnt=1,以后可以看成在1的后面依次擴充1位、擴充2位和擴充3位得到,cnt=cnt+b[3]=1111,即以數字1開頭的長度不超過4位的整數有1111個,再例如,要確定以數字1開頭的長度不超過4位且小于1234的整數有多少個?首先,整數1肯定是一個,置cnt=1,以后可以看成在1的后面依次擴充1位、擴充2位和擴充3位得到,但擴充3位后得到的4位數可能超過1234,而擴充1位或2位得到的2位數或3位數肯定小于1234,所以cnt=cnt+b[2]=111(擴充1~2位),再計算擴充3位的情況,cnt=cnt+(1234%1000)+1=346,即以數字1開頭的長度不超過4位且小于1234的整數有346個,若要確定以數字2開頭的長度不超過4位且小于1234的整數,則cnt=1,cnt=cnt+b[2]=111,計算擴充3位時,由于2>1234/1000,即以2開頭的4位數均大于1234,這樣以數字2開頭的長度不超過4位且小于1234的整數只有111個,

        求按字典序排列的第M個數時,從高位到低位,每位從小到大進行列舉填充數字,列舉時按上面的介紹計算以數字k開頭的長度不超過len位且值不超過N的整數的個數,從而確定該位填寫的數字,在填充程序中注意判斷前導零的情況以及最大值邊界的情況,

        為方便理解源程式代碼,下面用四個實體的構造來說明,

        例如,設n=120,m=25,要求的整數的位數最多3位,先構造最高位,設填充1,以1開頭的且小于120的整數有32個(1,10~19,100~120),m=25<32,所以1~120字典序中的第25個整數最高位一定是1,確定了一位后,m=m-1=24;之后確定次高位,以0開頭且小于n的兩位整數有11個(0,00~09,因為最高位已確定為1,非0,所以這里的0不是前導0),m=m-11=13,以1開頭的數字有11個(1,10~19),m=m-11=2,以2開頭的數字有11個(2,20~29),m=2<11,所以,次高位填寫2,填寫后,m=m-1=1;之后,確定最低位,以數字0開頭的1位數只有1個,m<=1,所以最低位確定為0,填寫后m=m-1=0,構造結束,1~120字典序中的第25個整數為120,

         再如,設n=2345,m=1680,以1開頭且小于n的整數有1111個,m=m-1111=569,以2開頭且小于n的整數有457個,其中1位數1個,2位數10個,3位數100個,4位數346個(2,20~29,200~299,2000~2345),m=569-457=112,以3開頭且小于n的整數有111個,m=112-111=1,以4開頭的數字有111個,m=1<111,所以1~2345字典序中的第1680個整數的最高位一定為4,填寫后,m=m-1=0,m等于0,填寫結束,所以結果為4,

        又如,設n=2345,m=1675,先構造最高位,以1開頭且小于n的整數有1111個,m=m-1111=564,以2開頭且小于n的整數有457個,m=564-457=107,以3開頭且小于n的整數有111個,m=107<111,所以1~2345字典序中的第1675個整數最高位一定是3,確定了一位后,m=m-1=106;之后確定次高位,符合要求的以0~8開頭的數各有11個(注意:以3開頭的4位數均大于2345),m=m-9*11=7,以9開頭的數有11個(即39,390~399這11個數),m=7<11,所以1~2345字典序中的第1680個整數的次高位一定為9,填寫后,m=m-1=6;之后以0~4開頭的1位數各1個,m=m-5*1=1,填寫5,填寫后m=m-1=0,m等于0,填寫結束,所以結果為395,

         又如,設n=2345,m=1564,先構造最高位,以1開頭且小于n的整數有1111個,m=1564-1111=453,以2開頭且小于n的整數有457個,m=453<457,所以1~2345字典序中的第1564個整數最高位一定是2,確定了一位后,m=m-1=452;之后確定次高位,以0,1,2開頭且小于n的3位以內整數各有111個,m=m-3*111=119,以3開頭的3位以內整數有57個(3,30~39,300~345),m=m-57=62,之后符合要求的以4~8開頭的數各有11個,m=m-5*11=7,以9開頭的數有11個,m=7<11,所以1~2345字典序中的第1564個整數的次高位一定為9,填寫后,m=m-1=6;之后以0~4開頭的1位數各1個,m=m-5*1=1,填寫5,填寫后m=m-1=0,m等于0,填寫結束,所以結果為295,

        (2)源程式,

#include <stdio.h>

typedef long long LL;

int main()

{

    LL n, m;

    LL a[19]={1},b[19]={0};

    int i,j;

    for (i=1; i<=18; i++)

    {

        a[i] = a[i-1]*10;

        b[i] = a[i]+b[i-1]; 

    }

    while (scanf("%lld%lld",&n,&m)!=EOF)

    {

        LL tmp=n;

        int len=0;

        while (tmp)

        {

           len++;

           tmp/=10;

        }

        LL ans=0;

        for (i=0; i<len; i++)   // 從高位開始構造

        {

           int res;

           for (j=((i==0)?1:0); j<=9; j++) // 從小的數開始構造

           {

               tmp = (ans*10+j)<=n;

               if (len-i-2 > 0) tmp += b[len-i-2];  // 長度小于len的數有幾個

               if (len-i-1 > 0)              // 長度等于len的數有幾個

               {

                  if (ans*10+j < n/a[len-i-1])

                      tmp += a[len-i-1];

                  else if (ans*10+j == n/a[len-i-1])

                      tmp += n%a[len-i-1]+1;

               }

               if (m>tmp) m-= tmp;

               else

               {

                  res = j;

                  break;

               }

           }

           ans = ans*10+res;

           m--;                 // 每選了一個數就減一

           if (m==0)  break;

        }

        printf("%lld\n",ans);

    }

    return 0;

}

52-3  有趣的數

問題描述

將1到N的正整數集合中的元素按照字典序排列,例如當N=11時,其順序應該為:1,10,11,2,3,4,5,6,7,8,9,

定義K在N個數中的位置為Q(N,K),例如Q(11,2)=4,現在給出整數K和M,要求找到最小的N,使得Q(N,K)=M,

輸入

輸入包括多行,每行是兩個整數K和M,

輸出

每組輸入輸出一行,該行是最小的N,如果不存在這樣的N就輸出0,

輸入樣例

2 4

100000001 1000000000

輸出樣例

11

100000000888888879

        (1)編程思路,

        先確定整數K的最小位置,

        例如,k=120時,排在它前面的1位數有1個(1),2位數有3個(10、11和12),3位數有20個(100~119),因此120的最小位置pos=1+3+20+1=25,

        再例如K=1680,排在它前面的1位數有1個(1),2位數有7個(10~16),3位數有20個(100~168),4位數有20個(1000~1680),因此1680的最小位置pos=1+7+69+681=758,

        求出K的最小位置pos后,將pos和 M 進行比較,

        若 pos=M,那么只要出現了K 就可以使得K的位置是M,因此N的最小值就是K,

        若 pos>M,無解,因為pos是K的最小位置,不存在其他的位置比pos還要小,

        若 pos<M,說明還有字典序排在K前面的數,但是位數小于等于K的已經窮舉完了,因此肯定有位數大于K的數排在K的前面,逐步增加位數,同時更新最小位數,當某個時刻 pos≥M ,先將pos級訓去,算出M 與pos之間的差,再加上 10^x(x是當前位數),最后減去 1(因為從 0 開始算),就是 N的最小值,

       (2)源程式,

#include <stdio.h>

int main()

{

    long long  m,k;

    while (scanf("%lld%lld",&k,&m)!=EOF)

    {

        long long pos=0;

        long long p=1;

        while (k>=p) p*=10;

        p/=10;

        long long temp1=k;

        long long temp2=p;

        while (temp1>0)

        {

            pos+=temp1-temp2+1;

            temp1/=10;

            temp2/=10;

        }

        if (pos>m) printf("0\n");

        else if (pos==m) printf("%lld\n", k);

        else

        {

            long long temp=k*10;

            p*=10;

            if (temp-p==0)

            {

                printf("0\n");

                continue;

            }

            while (pos-p+temp<m)

            {

                pos=pos-p+temp;

                temp*=10;

                p*=10;

            }

            p+=m-pos-1;

            printf("%lld\n", p);

        }

    }

       return 0;

}

轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/415202.html

標籤:C

上一篇:C++ 利用模板偏特化和 decltype(()) 識別運算式的值類別

下一篇:C語言程式設計100例之(53):螞蟻移動

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 【C++】Microsoft C++、C 和匯編程式檔案

    ......

    uj5u.com 2020-09-10 00:57:23 more
  • 例外宣告

    相比于斷言適用于排除邏輯上不可能存在的狀態,例外通常是用于邏輯上可能發生的錯誤。 例外宣告 Item 1:當函式不可能拋出例外或不能接受拋出例外時,使用noexcept 理由 如果不打算拋出例外的話,程式就會認為無法處理這種錯誤,并且應當盡早終止,如此可以有效地阻止例外的傳播與擴散。 示例 //不可 ......

    uj5u.com 2020-09-10 00:57:27 more
  • Codeforces 1400E Clear the Multiset(貪心 + 分治)

    鏈接:https://codeforces.com/problemset/problem/1400/E 來源:Codeforces 思路:給你一個陣列,現在你可以進行兩種操作,操作1:將一段沒有 0 的區間進行減一的操作,操作2:將 i 位置上的元素歸零。最終問:將這個陣列的全部元素歸零后操作的最少 ......

    uj5u.com 2020-09-10 00:57:30 more
  • UVA11610 【Reverse Prime】

    本人看到此題沒有翻譯,就附帶了一個自己的翻譯版本 思考 這一題,它的第一個要求是找出所有 $7$ 位反向質數及其質因數的個數。 我們應該需要質數篩篩選1~$10^{7}$的所有數,這里就不慢慢介紹了。但是,重讀題,我們突然發現反向質數都是 $7$ 位,而將它反過來后的數字卻是 $6$ 位數,這就說明 ......

    uj5u.com 2020-09-10 00:57:36 more
  • 統計區間素數數量

    1 #pragma GCC optimize(2) 2 #include <bits/stdc++.h> 3 using namespace std; 4 bool isprime[1000000010]; 5 vector<int> prime; 6 inline int getlist(int ......

    uj5u.com 2020-09-10 00:57:47 more
  • C/C++編程筆記:C++中的 const 變數詳解,教你正確認識const用法

    1、C中的const 1、區域const變數存放在堆疊區中,會分配記憶體(也就是說可以通過地址間接修改變數的值)。測驗代碼如下: 運行結果: 2、全域const變數存放在只讀資料段(不能通過地址修改,會發生寫入錯誤), 默認為外部聯編,可以給其他源檔案使用(需要用extern關鍵字修飾) 運行結果: ......

    uj5u.com 2020-09-10 00:58:04 more
  • 【C++犯錯記錄】VS2019 MFC添加資源不懂如何修改資源宏ID

    1. 首先在資源視圖中,添加資源 2. 點擊新添加的資源,復制自動生成的ID 3. 在解決方案資源管理器中找到Resource.h檔案,編輯,使用整個專案搜索和替換的方式快速替換 宏宣告 4. Ctrl+Shift+F 全域搜索,點擊查找全部,然后逐個替換 5. 為什么使用搜索替換而不使用屬性視窗直 ......

    uj5u.com 2020-09-10 00:59:11 more
  • 【C++犯錯記錄】VS2019 MFC不懂的批量添加資源

    1. 打開資源頭檔案Resource.h,在其中預先定義好宏 ID(不清楚其實ID值應該設定多少,可以先新建一個相同的資源項,再在這個資源的ID值的基礎上遞增即可) 2. 在資源視圖中選中專案資源,按F7編輯資源檔案,按 ID 型別 相對路徑的形式添加 資源。(別忘了先把檔案拷貝到專案中的res檔案 ......

    uj5u.com 2020-09-10 01:00:19 more
  • C/C++編程筆記:關于C++的參考型別,專供新手入門使用

    今天要講的是C++中我最喜歡的一個用法——參考,也叫別名。 參考就是給一個變數名取一個變數名,方便我們間接地使用這個變數。我們可以給一個變數創建N個參考,這N + 1個變數共享了同一塊記憶體區域。(參考型別的變數會占用記憶體空間,占用的記憶體空間的大小和指標型別的大小是相同的。雖然參考是一個物件的別名,但 ......

    uj5u.com 2020-09-10 01:00:22 more
  • 【C/C++編程筆記】從頭開始學習C ++:初學者完整指南

    眾所周知,C ++的學習曲線陡峭,但是花時間學習這種語言將為您的職業帶來奇跡,并使您與其他開發人員區分開。您會更輕松地學習新語言,形成真正的解決問題的技能,并在編程的基礎上打下堅實的基礎。 C ++將幫助您養成良好的編程習慣(即清晰一致的編碼風格,在撰寫代碼時注釋代碼,并限制類內部的可見性),并且由 ......

    uj5u.com 2020-09-10 01:00:41 more
最新发布
  • Rust中的智能指標:Box<T> Rc<T> Arc<T> Cell<T> RefCell<T> Weak

    Rust中的智能指標是什么 智能指標(smart pointers)是一類資料結構,是擁有資料所有權和額外功能的指標。是指標的進一步發展 指標(pointer)是一個包含記憶體地址的變數的通用概念。這個地址參考,或 ” 指向”(points at)一些其 他資料 。參考以 & 符號為標志并借用了他們所 ......

    uj5u.com 2023-04-20 07:24:10 more
  • Java的值傳遞和參考傳遞

    值傳遞不會改變本身,參考傳遞(如果傳遞的值需要實體化到堆里)如果發生修改了會改變本身。 1.基本資料型別都是值傳遞 package com.example.basic; public class Test { public static void main(String[] args) { int ......

    uj5u.com 2023-04-20 07:24:04 more
  • [2]SpinalHDL教程——Scala簡單入門

    第一個 Scala 程式 shell里面輸入 $ scala scala> 1 + 1 res0: Int = 2 scala> println("Hello World!") Hello World! 檔案形式 object HelloWorld { /* 這是我的第一個 Scala 程式 * 以 ......

    uj5u.com 2023-04-20 07:23:58 more
  • 理解函式指標和回呼函式

    理解 函式指標 指向函式的指標。比如: 理解函式指標的偽代碼 void (*p)(int type, char *data); // 定義一個函式指標p void func(int type, char *data); // 宣告一個函式func p = func; // 將指標p指向函式func ......

    uj5u.com 2023-04-20 07:23:52 more
  • Django筆記二十五之資料庫函式之日期函式

    本文首發于公眾號:Hunter后端 原文鏈接:Django筆記二十五之資料庫函式之日期函式 日期函式主要介紹兩個大類,Extract() 和 Trunc() Extract() 函式作用是提取日期,比如我們可以提取一個日期欄位的年份,月份,日等資料 Trunc() 的作用則是截取,比如 2022-0 ......

    uj5u.com 2023-04-20 07:23:45 more
  • 一天吃透JVM面試八股文

    什么是JVM? JVM,全稱Java Virtual Machine(Java虛擬機),是通過在實際的計算機上仿真模擬各種計算機功能來實作的。由一套位元組碼指令集、一組暫存器、一個堆疊、一個垃圾回收堆和一個存盤方法域等組成。JVM屏蔽了與作業系統平臺相關的資訊,使得Java程式只需要生成在Java虛擬機 ......

    uj5u.com 2023-04-20 07:23:31 more
  • 使用Java接入小程式訂閱訊息!

    更新完微信服務號的模板訊息之后,我又趕緊把微信小程式的訂閱訊息給實作了!之前我一直以為微信小程式也是要企業才能申請,沒想到小程式個人就能申請。 訊息推送平臺🔥推送下發【郵件】【短信】【微信服務號】【微信小程式】【企業微信】【釘釘】等訊息型別。 https://gitee.com/zhongfuch ......

    uj5u.com 2023-04-20 07:22:59 more
  • java -- 緩沖流、轉換流、序列化流

    緩沖流 緩沖流, 也叫高效流, 按照資料型別分類: 位元組緩沖流:BufferedInputStream,BufferedOutputStream 字符緩沖流:BufferedReader,BufferedWriter 緩沖流的基本原理,是在創建流物件時,會創建一個內置的默認大小的緩沖區陣列,通過緩沖 ......

    uj5u.com 2023-04-20 07:22:49 more
  • Java-SpringBoot-Range請求頭設定實作視頻分段傳輸

    老實說,人太懶了,現在基本都不喜歡寫筆記了,但是網上有關Range請求頭的文章都太水了 下面是抄的一段StackOverflow的代碼...自己大修改過的,寫的注釋挺全的,應該直接看得懂,就不解釋了 寫的不好...只是希望能給視頻網站開發的新手一點點幫助吧. 業務場景:視頻分段傳輸、視頻多段傳輸(理 ......

    uj5u.com 2023-04-20 07:22:42 more
  • Windows 10開發教程_編程入門自學教程_菜鳥教程-免費教程分享

    教程簡介 Windows 10開發入門教程 - 從簡單的步驟了解Windows 10開發,從基本到高級概念,包括簡介,UWP,第一個應用程式,商店,XAML控制元件,資料系結,XAML性能,自適應設計,自適應UI,自適應代碼,檔案管理,SQLite資料庫,應用程式到應用程式通信,應用程式本地化,應用程式 ......

    uj5u.com 2023-04-20 07:22:35 more