本文共 651 字,大约阅读时间需要 2 分钟。
简单介绍下 feistel算法
输入一个字符串,把它长度分为a,b两段,b段放到前面,a段按照某个规则转换一下写到b段后面举个例子
输入 2 2 //把长度为4 的字符串分成两段 输入ABCD 此时 CD段提前 AB段各自加三 变成 DE 所以结果应为 CDDE求问为什么下面这段代码,输出是CDE?
已经很明显了~~~~#includeusing namespace std;void main(){ cout<<"请输入A块长度,B块长度"< >length_a>>length_b; string s; char res[1000]; cin>>s1; if(s1.length()!=(a+b)){ cout<<"mistake,length is not equal"< ='a'&&s[i]<'x')||(s[i]>='A'&&s[i]<'X')){ res[pos++]=(char)(s[i]+3); } else { res[pos++]=(char)(s[i]+3-26); } } res[pos] = '\0'; cout< <
欢迎大家来一起讨论,我觉得错的比较隐蔽,故贴出来
转载地址:http://wtujn.baihongyu.com/