設有乙個整型陣列a中存放n個互不相同的整數,a中元素取值範圍為0到n-1。a陣列的編碼定義如下:a[0]的編碼為0,放入b[0];ai的編碼為在a[0]、a[1]、…、a[i-1]中比a[i]的值小的數的個數,放入b[i]。例如:a[6]=時,則b[6]=。你有兩個任務,任務一是編碼,即已知n與陣列a,求陣列b;任務二是解碼,即已知n與陣列b,求陣列a。
輸入與輸出要求:首先輸入兩個整數n和flag。n代表陣列元素的個數(1<=n<=100),flag代表任務型別(flag=1代表編碼任務,flag=2代表解碼任務)。然後是n個整數,當flag=1時,這n個數即代表陣列a的內容;當flag=2時,這n個數即代表陣列b的內容。
輸出n個整數,當flag=1時即為編碼後陣列b的內容,當flag=2時,即為解碼後陣列a的內容。每個整數用空格分開,最後乙個整數後是換行符。
程式執行效果:
sample 1:
5↙1↙
2 1 3 0 4↙
0 0 2 0 4
sample 2:
8↙2↙
0 1 2 0 1 1 4 5↙
3 6 7 0 2 1 4 5
#include
intmain()
for(
int i=
0;ib[i]
=cnt;
}for
(int i=
0;i)else}}
cnt=0;
if(flag==2)
for(
int i=
0;i)//a[n-1]=b[n-1];
int number[n]
;for
(int i=
0;i)//number[b[n-1]]=-1;
for(
int i=n-
1;i>=
0;i--
) cnt++;}
}for
(int i=
0;i)else
if(i==n-1)
}}return0;
}
簡化版
#include
intmain()
} b[i]
=cnt;
}for
(int i=
0;iif(flag==2)
}for
(int i=
0;ireturn0;
}
D 實驗7 21 編碼 解碼陣列
設有乙個整型陣列a中存放n個互不相同的整數,a中元素取值範圍為0到n 1。a陣列的編碼定義如下 a 0 的編碼為0,放入b 0 ai的編碼為在a 0 a 1 a i 1 中比a i 的值小的數的個數,放入b i 例如 a 6 時,則b 6 你有兩個任務,任務一是編碼,即已知n與陣列a,求陣列b 任務...
C安全編碼 陣列
建議 規則 void clear int array void dowork void clear 使用sizeof array sizeof array 0 這種用法確定這個陣列的元素數量,但由於array是乙個形參,因此它是指標型別,sizeof array sizeof int 4 32位os...
第十九次總結 編碼與解碼 資料編碼
md5是什麼?base64編碼?md5 是一種加密演算法 md5加密是非可逆的 摘要加密演算法 sha 1 sha 256 通常用在對密碼進行加密 messagedigest md messagedigest.getinstance md5 sha 1 sha 256 md.update strin...