首页 > 编程知识 正文

古典c语言,c语言古典型

时间:2023-12-29 13:16:26 阅读:329543 作者:WQZG

本文目录一览:

求古典密码学的c语言代码

给:

维吉尼亚密码的C语言源代码

设m表示明文序列,k表示密钥序列

#include ctype.h

#include stdio.h

#include stdlib.h

#include string.h

#include conio.h

void crypt(char m[],char k[],char r[])

{

int i,j,s=0;

j=strlen(k);

for(i=0;m[i];i++)

m[i]=tolower(m[i]);

for(i=0;m[i];i++)

if(isalpha(m[i]))

{

r[i]=(m[i]-'a'+k[s%j]-'a')%26+'a';

s++;/* s用来跳过明文中的空格字符 */

}

else

r[i]=m[i];

r[i]=0;/* 密文字符串结束符 */

for(i=0;r[i];i++)

r[i]=toupper(r[i]);

}

void decrypt(char c[],char k[],char m[])

{

int i,j,s=0;

j=strlen(k);

for(i=0;c[i];i++)

c[i]=tolower(c[i]);

for(i=0;c[i];i++)

if(isalpha(c[i]))

{

m[i]=(c[i]-k[s%j]+26)%26+'a';

s++;

}

else

m[i]=c[i];

m[i]=0;

}

void main()

{

char m[]="welcome to my blog.i am bugeyes.";//我这里是赋值了一个固定的字符串为明文序列,你也可以做成用户输入的

char k[]="bugeyeswuyan";//我这里是赋值了一个固定的字符串为密钥序列,你也可以做成用户输入的

char c[80];

char d[80];

system("cls");;

crypt(m,k,c);

decrypt(c,k,d);

puts(m);

puts(k);

puts(c);

puts(d);

}

C语言古典兔子问题的控制语句i

如果i小于等于20,返回真,否则返回假。

for(int i = 1; i=20; i = i + 1){}是这样的是吧,这是循环20次,每次循环后i加1

C语言题目:古典问题有关兔子的

可以考虑递归算法:

int Amount(int day)

{

if (day==10)

{

return 1;

}

else

{

return 2*(Amount(day-1)+1);

}

}

早说嘛。。。害的白写了个。。

这题可以多用几个递归函数解决,在这里我称不能生育的兔子为小兔,能生育的为大兔

int littleR(int month)

{

if (month==1)

return 0;

else

return bigR(month-1)+little(month-1);

}

int bigR(int month)

{

if (month==1)

{

return 1;

}

else if (month==2)

{

return 1;

}

else if (month==3)

{

return 1;

}

else

{

return bigR(month-1)+little(month-2);

}

}

int totalR(int month)

{

return littleR(month)+bigR(month);

}

注:这种增长速度的话很快兔子的数量就会增长到很大,所以如果month达到几十的话就会超过int范围,所以可以考虑用__int64代替int,另外到时候如果依然每次都递归的话运行速度也会变慢,可能要好几秒,好几分钟,甚至更长的时间才能算出结果,所以可以考虑用数组存每个递归函数算出的值,如:

littleR(int month)中else可写成

if (...)

{

...

}

else

{

if (a[month]!=0)

return month;

else

return a[month]=bigR(month-1)+little(month-1);

}

用这种方法可以适当提高运行速度。。。

C语言中古典数是什么

应该是浮点数float,小数型的。键盘上F与G相邻,打错是很正常的。

C语言解答古典问题:有一对兔子,从出生后第三个月起每个月哦与生一对兔子,小兔子长到第三个月后……

首先你审题不清,如果用i代表免子年纪月份,用f代表免子数,那么会有f=1十(i-3),也就是说每当兔子到3个月后f才能开始加1,必须有判断句来判断兔子年纪是否大于3,这里要求的是兔子,月份应该用一个等待键盘输入语句,要用循环语句。希望对你有帮助,20年不搞了也不一定对

c语言编程(中国古典算术问题)

#includestdio.h int main() {int i,j; for(i=0;i=15;i++) { for(j=0;j45-i;j++) if(3*i+2*j+(45-i-j)/2==45) printf("%d %d %d",i,j,45-i-j); printf("n"); } }

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。