本文目錄一覽:
- 1、求古典密碼學的c語言代碼
- 2、C語言古典兔子問題的控制語句i
- 3、C語言題目:古典問題有關兔子的
- 4、C語言中古典數是什麼
- 5、C語言解答古典問題:有一對兔子,從出生後第三個月起每個月哦與生一對兔子,小兔子長到第三個月後……
- 6、c語言編程(中國古典算術問題)
求古典密碼學的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”); } }
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/292102.html