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

首頁 > 學院 > 開發設計 > 正文

藍橋杯——計算機研究生機試真題(2017.2.19)

2019-11-08 02:24:26
字體:
來源:轉載
供稿:網友
1. (2012年北京大學計算機研究生機試真題)最簡真分數題目描述:給出n個正整數,任取兩個數分別作為分子和分母組成最簡真分數,編程求共有幾個這樣的組合。輸入:輸入有多組,每組包含n(n<=600)和n個不同的整數,整數大于1且小于等于1000。當n=0時,程序結束,不需要處理這組數據。輸出:每行輸出最簡真分數組合的個數。樣例輸入:73 5 7 9 11 13 153 2 4 50樣例輸出:17 

2

源代碼:

#include <stdio.h>#include <iostream>#include <algorithm>using namespace std;#define maxn 610int Judge(int a,int b)                 //最簡真分數判斷{	int p;	while(b!=0)	{		p=a%b;		a=b;		b=p;	}	if(a>1)		return 0;	else		return 1;}int main(){	int n,a[maxn];	int i,j;	int count;	while(scanf("%d",&n)!=EOF)	{		count=0;		if(n==0)			break;		for(i=0;i<n;i++)			scanf("%d",&a[i]);		sort(a,a+n);           //排序+輾轉相除法判斷分子與分母是否有最大公約數		for(i=0;i<n;i++)		{			for(j=i+1;j<n;j++)			{				if(Judge(a[i],a[j]))					count++;			}		}		PRintf("%d/n",count);	}	return 0;}程序截圖:

※2. (2007年清華大學計算機研究生機試真題)質因數的個數題目描述:求正整數N(N>1)的質因數的個數。相同的質因數需要重復計算。如120=2*2*2*3*5,共有5個質因數。輸入:可能有多組測試數據,每組測試數據的輸入是一個正整數N,(1<N<10^9)。輸出:對于每組數據,輸出N的質因數的個數。樣例輸入:120樣例輸出:5提示:注意:1不是N的質因數;若N為質數,N是N的質因數。

源代碼:

#include <stdio.h>#include <math.h>int is_Prime(int n)                       //判斷一個數是否是質數(素數) {	int i;	int flag=1;	for(i=2;i<=sqrt(n);i++)	{		if(n%i==0)		{			flag=0;			break;		}	}	return flag;}int main(){	int N;	int i,j,count;	while(scanf("%d",&N)!=EOF)	{		j=sqrt(N);		count=0;		for(i=2;i<=j;i++)                 //判斷一個質數i是否是N的因數 		{			while(N%i==0 && is_Prime(i))  //注意相同的質因數需要重復計算,故放到while循環內 			{				count++;				N/=i;			}			if(N==1)                      //while循環結束后N為1,直接跳出;否則找下一個質因數 				break;		}		if(N!=1)                          //以上循環結束后N是質數,表示此時的N也是N的質因數            count++;		printf("%d/n",count);	}	return 0;}程序截圖:

3. 回文子串題目描述:輸入一個字符串,輸出該字符串中對稱的子字符串的最大長度。比如輸入字符串“google”,由于該字符串里最長的對稱子字符串是“goog”,因此輸出4。輸入:存在多組數據,每組數據一行字符串,長度不大于100。輸出:輸出回文子串的最大長度。樣例輸入:google樣例輸出:4

源代碼:

#include <stdio.h>#include <string.h>#define maxlen 105int Judgestr(char str[],int len)           //判斷字符串是否是回文串 {	int i=0,j=len-1;	int flag=1;	while(i<j)	{		if(str[i]!=str[j])		{			flag=0;			break;		}		i++,j--;	}	return flag;}int main(){	char str[maxlen],obj[maxlen];          //兩數組分別保存源字符串與得到的回文子串 	int i,j,k,t;	int count,len,maxobjlen;	while(gets(str)!=NULL)	{		len=strlen(str);		count=2,maxobjlen=1;               //初始狀態:從長度為2的子串開始找,回文子串長度為1 		for(t=0;t<len;t++)                 //三重循環:第一重-完成"回溯",即找完長度為j的子串后可以繼續找長度為j+1的子串 		{			for(i=0;i<len;i++)             //第二重-確定子串起點			{				k=0;				for(j=i;j<i+count;j++)     //第三重-確定子串長度					obj[k++]=str[j];				obj[k]='/0';				if(Judgestr(obj,k))        //判斷子串為回文串時,得到回文子串長度 					maxobjlen=count;       //如果沒有符合上述要求的串,回文子串長度為1(一個字符也可以看做回文子串) 			}			count++;		}		printf("%d/n",maxobjlen);	}}程序截圖:

※4. (2002年華中科技大學計算機研究生機試真題)統計單詞題目描述:編一個程序,讀入用戶輸入的,以“.”結尾的一行文字,統計一共有多少個單詞,并分別輸出每個單詞含有多少個字符。(凡是以一個或多個空格隔開的部分就為一個單詞)輸入:輸入包括1行字符串,以“.”結束,字符串中包含多個單詞,單詞之間以一個或多個空格隔開。輸出:可能有多組測試數據,對于每組數據,輸出字符串中每個單詞包含的字母的個數。樣例輸入:hello how are you.樣例輸出:5 3 3 3

【分析】需要注意用scanf("%s",str); 或cin>>str; 輸入字符串,在沒有輸入任何字符的時候按空格、回車是不算字符的,如本題輸入(   hello   how are      you.)結果是一樣的;在字符后面的空格為結束符,即變成(hello'/0' how'/0'are'/0'you.'/0'),只是這樣最后一個空格比較難解決,幸好有題中說以'.為結束符,這樣就有了界限,根據這個界限來換行,進行下一組輸入。

        此外,也可將每個單詞包含的字母個數存入一數組,可以比較靈活地實現輸出。

源代碼:

#include <stdio.h>#define maxlen 1010int main()  {	char str[maxlen];	int i,len;	while(scanf("%s",str)!=EOF)	{		len=0;		for(i=0;str[i]!='/0' && str[i]!='.';i++)			len++;		if(str[i]=='.')			printf("%d/n",len);		else			printf("%d ",len);	} 	return 0;}程序截圖:

=====================================我是分割線=====================================

4. 拓展:輸入一句話,統計這句話中包含多少個單詞

源代碼:

#include <stdio.h>#include <string.h>#define maxlen 1010int main()  {      char str[maxlen]={'/0'};      int i,flag,count=0;     while(gets(str)!=NULL)    {    	flag=0,count=0;              //flag開始置0可包括輸入的第一個字符非空格的情況,意味著已有一個單詞 		for(i=0;i<strlen(str);i++)  	    {                           	        if(str[i]==' ')          //判斷當前字符是否是空格,若是,flag=0,  	            flag=0;	        else                     //若不是,判斷當前字符前一個字符是否是空格,即flag是否等于0	        {	            if(flag==0)          //若前面是空格,則說明是新單詞的開始,并將flag置為1 	            { 	                count++;  	                flag=1;  	            }  	        }	    }	    printf("%d/n",count);	}    return 0;  }程序截圖:


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 正镶白旗| 交口县| 五家渠市| 张家港市| 泰兴市| 额尔古纳市| 沂水县| 西乌珠穆沁旗| 安新县| 古丈县| 泽普县| 安图县| 高唐县| 金坛市| 三原县| 黔西| 河曲县| 敦化市| 阳朔县| 宣恩县| 临颍县| 东平县| 山东省| 常宁市| 商都县| 仲巴县| 孟津县| 安平县| 惠来县| 扎鲁特旗| 甘孜| 穆棱市| 水富县| 五大连池市| 长春市| 宝应县| 临夏市| 凤冈县| 田林县| 鸡西市| 淮阳县|