国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

藍(lán)橋杯——2008 北航計(jì)算機(jī)研究生機(jī)試真題(2017.2.8)

2019-11-10 19:25:31
字體:
供稿:網(wǎng)友

1. 素?cái)?shù)

源代碼:

#include <stdio.h>#include <math.h>void FindPRimenum(int n){	int i,j,k;	int num=0,flag;	for(i=2;i<n;i++)	{		k=sqrt(i),flag=1;		for(j=2;j<=k;j++)		{			if(i%j==0 && i!=2)      //2是素?cái)?shù),把這一特殊情況去掉 			{				flag=0;				break;			}		}		if(flag==1 && i%10==1)		{			num++;			if(num==1)				printf("%d",i);			else				printf(" %d",i);		}	}	if(num==0)		printf("-1");	printf("/n");}int main(){	int n;	while(scanf("%d",&n)!=EOF)		FindPrimenum(n);	return 0;}程序截圖:

2. 旋轉(zhuǎn)矩陣

源代碼:

#include <stdio.h>#define maxn 10void Judge(int a[][maxn],int b[][maxn],int n)  //判斷角度0.90.180.270(旋轉(zhuǎn)角度為多個(gè)時(shí)的最小角度)或非旋轉(zhuǎn)矩陣 {	int i,j,angle;	int flag1=1,flag2=1,flag3=1,flag4=1;	for(i=0;i<n;i++)                           //注意元素間的對(duì)應(yīng)關(guān)系,可以取較小的n推出 	{		for(j=0;j<n;j++)		{			if(a[i][j]!=b[i][j])			{				flag1=0;				break;			}		}	}	for(i=0;i<n;i++)	{		for(j=0;j<n;j++)		{			if(a[i][j]!=b[n-1-i][n-1-j])			{				flag2=0;				break;			}		}	}	for(i=0;i<n;i++)	{		for(j=0;j<n;j++)		{			if(a[i][j]!=b[j][n-1-i])			{				flag3=0;				break;			}		}	}	for(i=0;i<n;i++)	{		for(j=0;j<n;j++)		{			if(a[i][j]!=b[n-1-j][i])			{				flag4=0;				break;			}		}	}	if(flag1==1)		angle=0;	else if(flag2==1)		angle=180;	else if(flag3==1)		angle=90;	else if(flag4==1)		angle=270;	else		angle=-1;	printf("%d/n",angle);}int main(){	int i,j,n;	int a[maxn][maxn],b[maxn][maxn];	while(scanf("%d",&n)!=EOF)	{		for(i=0;i<n;i++)			for(j=0;j<n;j++)				scanf("%d",&a[i][j]);		for(i=0;i<n;i++)			for(j=0;j<n;j++)				scanf("%d",&b[i][j]);		Judge(a,b,n);	}	return 0;}程序截圖:

3. 字符串匹配

源代碼:(天真地以為會(huì)與KMP有點(diǎn)關(guān)系,然而還是想多了:(  附上一個(gè)參考代碼及我的理解吧。不得不說這個(gè)題很好很有新意,值得繼續(xù)深入思考)

#include <stdio.h>  #include <stdlib.h>  #include <string.h>  #define MAX 1001  #define LEN 101struct string                                //定義結(jié)構(gòu)體為字符串類型 {    char name[101];  };int main()  {      struct string strs[MAX];                 //數(shù)據(jù)字符串     struct string t[LEN];                    //文本數(shù)組     int i,j,k,n;	int len,left,right,count,flag;    char text[LEN],newtext[LEN];             //text[LEN]保存短字符串 newtext[LEN]保存文本串字符     while(scanf("%d",&n)!=EOF)	{          getchar();                           //接收數(shù)據(jù)        for(i=0;i<n;i++)            scanf("%s",strs[i].name);        getchar();                           //接收文本串        gets(text);          len=strlen(text);        for (i=left=right=0;i<len;i++)		{              if(text[i]=='[')                 //left記錄模式匹配起始點(diǎn)                 left=i;			else if(text[i]==']')            //right記錄模式匹配終止點(diǎn) 			{                  right=i;                 break;              }          }        count=right-left-1;                  //count記錄模式匹配區(qū)間長(zhǎng)度         if(count<=0)                         //不需要(正則)匹配,直接看文本串除'['和']'外的其它字符 		{               for(i=j=0;i<len;i++)			{                if(text[i]!='[' && text[i]!=']')   //保存文本串字符                     newtext[j++]=text[i];              }            newtext[j] = '/0';            for (i=0;i<n;i++)			{                if (strcasecmp(strs[i].name,newtext) == 0)   //忽略字母大小寫,判斷字符串是否相同,相同則輸出數(shù)據(jù)字符串string[]                     printf("%d %s/n",i+1,strs[i].name);              }          }		else                                 //需要(正則)匹配 		{              for(j=1,k=0;j<=count;j++,k++)    //構(gòu)建文本數(shù)組			{                memset(t[k].name,'/0',sizeof(t[k].name)); //文本數(shù)組初始化                 for(i=0;i<left;i++)                       //文本串left前面的字符賦給文本數(shù)組                     t[k].name[i]=text[i];                t[k].name[i]=text[left+j];                //從模式匹配中取一個(gè)字符,賦給文本數(shù)組                 strcat(t[k].name,text+right+1);           //文本串right后面的字符賦給文本數(shù)組             }            for(i=0;i<n;i++)                 //(正則)匹配   			{                for(j=flag=0;j<count;j++)				{                    if(strcasecmp(strs[i].name,t[j].name)==0)  //只要匹配成功,flag=1,后續(xù)不再匹配,將數(shù)據(jù)字符串輸出					{                        flag=1;                          break;                      }                }                if(flag)                    printf("%d %s/n",i+1,strs[i].name);              }        }    }    return 0;}程序截圖:


發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 肃北| 丰县| 甘洛县| 临城县| 廉江市| 鹿邑县| 平潭县| 江孜县| 大冶市| 通海县| 永济市| 诏安县| 仁怀市| 江川县| 屏南县| 贵定县| 上思县| 手机| 昭苏县| 红河县| 安泽县| 永登县| 揭阳市| 平谷区| 绵竹市| 保亭| 巩义市| 犍为县| 珠海市| 洛隆县| 贞丰县| 太白县| 保德县| 德安县| 栾川县| 普洱| 寿光市| 伽师县| 淮南市| 阿坝县| 陵川县|