同學說要幫大一的學弟學妹做課程設計,出了幾個題目,很奇怪他們大一爲什麼就開始出關於數據結構的題目,還有加密解密的,感覺很誇張,因爲我們是到大二的時候才學的數據結構,最近實習結束比較閒,所以就拿來寫了下
題目要求:
矩陣相乘的要求是:第一個矩陣的列數和第二個矩陣的行數相等
設矩陣爲:a[m][n],b[n][m'],相乘後的結果爲:c[m][m']*/
#include<stdio.h>
#define m 4
#define n 3
#define l 2
int i,j,k;
int a[m][n]={{11,8,5},{4,5,8},{2,14,9},{4,5,8}};
int b[n][l]={{4,8},{8,5},{9,9}};
int c[m][l];
main()
{
for(i=0;i<m;i++)
for(j=0;j<l;j++)
for(k=0;k<n;k++)
c[i][j]+=a[i][k]*b[k][j];
printf("矩陣a的數字如下 ");
for(i=0;i<m;i++) /*輸出開始的矩陣a*/
{
for(j=0;j<n;j++)
printf("%d ",a[i][j]);
printf(" ");
}
printf("矩陣b的數字如下 ");
for(i=0;i<n;i++) /*輸出開始的矩陣b*/
{for(j=0;j<l;j++)
printf("%d ",b[i][j]);
printf(" ");
}
printf("矩陣c的數字如下 ");
for(i=0;i<m;i++) /*輸出開始的矩陣b*/
{ for(j=0;j<l;j++)
printf("%d ",c[i][j]);
printf(" ");
}
}
一司機出車禍後駕車逃離現場,第一位目擊者記得車牌號前兩位數字相同,
且後兩位數字也相同;第二位目擊者是一位數學家,他看出車牌號是四位完
全平方數。試編程推算肇事車的車牌號*/
/*設計思路:
因爲四位的平方數所對應的數字恰好是從 32 到 99 的,所以可以列出這些數字,
順次遍歷,看是否有符合條件的值,有則輸出 */
#include<stdio.h>
#include<string.h>
#define M 100
int num[M]; /*用來存放四位的平方整數*/
main(int argc,int argv[])
{
int i,j;
for( j=0, i=32;i<100;i++,j++) /*將四位的平方數存到num 數組中*/
{
num[j]=i*i;
// printf("數字 %d 的平方數爲:%d ",j,num[j]);
}
for(j=0;j<(100-32);j++)
{
if( (num[j]/1000) == ((num[j]/100)%10))
{
if( (num[j]%10) == ((num[j]%100)/10))
printf("%d",num[j]);
}
}
}
這個題目還有很多的實現方法,折半查找的方法
#include <math.h>
bool IsThere(int n);
int shu[100];
main()
{
int i = 0;
for(int j = 0; j < 100 ; j++)
{
shu[i] = j*j;
i++;
}
for (int r = 0 ; r<=9; r ++)
{
for(int t = 0; t<= 9 ;t++)
{
int p = r*1000+r*100+t*10+t;
if(IsThere(p))
printf("%d ",p);
}
}
}
bool IsThere(int n)
{
int low = 0;
int high = 100;
while(low <= high)
{
int p = (low+high)/2;
if( shu [p] == n)
{
return true;
}
else if( shu [p] > n)
{
high = p-1;
}
else if( shu[p] < n)
{
low = p+1;
}
}
return false;
}