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

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

藍橋杯——2010 吉大計算機研究生機試真題(2017.2.5)

2019-11-11 07:28:24
字體:
供稿:網(wǎng)友

1. 三角形的邊

源代碼:

#include <stdio.h>void fun(int a,int b,int c){	int min,mid,max;	int t;	if(a>b)		t=a,a=b,b=t;	if(b>c)		t=b,b=c,c=t;	if(a>b)		t=a,a=b,b=t;	min=a,mid=b,max=c;	PRintf("%d/n",min+mid-max);}int main(){	int a,b,c;	while(scanf("%d %d %d",&a,&b,&c)!=EOF)	{		if(a==0)			break;		fun(a,b,c);	}	return 0;}程序截圖:

2. 平方因子

源代碼:

#include <stdio.h>int main(){	int i,n;	int flag;	while(scanf("%d",&n)!=EOF)	{		flag=0;		if(n==0)			break;		for(i=2;i<n;i++)		{			if(n%i==0 && (i*i)%n==0)			{				flag=1;				break;			}		}		if(flag==1)			printf("Yes/n");		else			printf("No/n");	}	return 0;}程序截圖:

3. 排列與二進制

分析:正常的順序應(yīng)該先求出排列數(shù),再將其轉(zhuǎn)化成二進制數(shù),之后進行末尾連續(xù)0的判斷,但是要注意其中有幾個難點:        ①求排列數(shù)的結(jié)果是否越界,越界之后用數(shù)組是否方便?        ②轉(zhuǎn)換成二進制也需要存入數(shù)組中。        但是根據(jù)十進制轉(zhuǎn)換成二進制的商除法就會發(fā)現(xiàn),不斷除以2,先出現(xiàn)的就是最后二進制從后往前的數(shù)(即除2取余)。故要求二進制末尾的連續(xù)0的個數(shù),只要看n(n-1)(n-2)……(n-m+1)最多可以整除幾個2即可(利用此方法可以避免可能的數(shù)組越界和int型超精度問題)

源代碼:

#include <stdio.h>int main(){	int n,m;	int i,t,num;                          //num記錄排列數(shù)后面0的個數(shù) 	while(scanf("%d %d",&n,&m)!=EOF)	{		num=0;		if(n==0)			break;		for(i=n-m+1;i<=n;i++)             // n*(n-1)*(n-2)*...*(n-m+1)		{			t=i;			while(t%2==0)                 //除2取余得0時,即為排列數(shù)后面的0 			{				num++;				t/=2;                     //除2 			}		}		printf("%d/n",num);	}	return 0;}程序截圖:

4. 怪異的洗牌

源代碼:

#include <stdio.h>#define maxn 1000void Shift(int poker[],int result[],int x,int n)       //移位(數(shù)組循環(huán)移位問題) {	int i,j=0;	for(i=x;i<n;i++)                                   //將數(shù)組第x+1個元素到最后一個元素移到最前面 		result[j++]=poker[i];	for(i=0;i<x;i++)                                   //其余元素置后 		result[j++]=poker[i];}void Flip(int result[],int half)                       //翻轉(zhuǎn)(數(shù)組逆置/逆序輸出問題) {	int i=0,j=half-1;                                  //以下用逆序存儲完成 	int temp;	while(i<j)	{		temp=result[i];		result[i]=result[j];		result[j]=temp;		i++,j--;	}}int main(){	int i,n,k,x; 	int t,half;                                        //t-移位/翻轉(zhuǎn)操作次數(shù)  half-翻轉(zhuǎn)操作標記 	int poker[maxn],result[maxn]={0};                  //兩數(shù)組分別記錄操作前和操作后的牌 	while(scanf("%d %d",&n,&k)!=EOF)	{		if(n==0)			break;		t=0;		for(i=0;i<n;i++)                               //操作前撲克牌賦值 			poker[i]=i+1;		while(t<k)		{			scanf("%d",&x);			Shift(poker,result,x,n);                   //移位操作 結(jié)果存入result數(shù)組 			if(n%2==0)                                 //確定翻轉(zhuǎn)操作位置 				half=n/2;			else				half=(n-1)/2;			Flip(result,half);                         //在上述result數(shù)組結(jié)果基礎(chǔ)上翻轉(zhuǎn) 			t++;			for(i=0;i<n;i++)              //將一輪操作結(jié)束后的結(jié)果賦給poker數(shù)組(之前因為忽略此步操作WA了,k>1時將會派上大用場:( )				poker[i]=result[i];		}		for(i=0;i<n;i++)                               //k次操作結(jié)束后的結(jié)果 			printf("%d ",result[i]);		printf("/n");	}	return 0;}程序截圖:


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 岑巩县| 修武县| 迭部县| 甘孜| 莆田市| 东海县| 吉林市| 阿克陶县| 白银市| 龙游县| 盐津县| 太仆寺旗| 清镇市| 蒲江县| 郎溪县| 洞头县| 温泉县| 钟山县| 永新县| 新营市| 陆丰市| 盘山县| 交口县| 桂东县| 吴忠市| 郑州市| 江油市| 泾源县| 潜江市| 安平县| 宁武县| 卓尼县| 房山区| 定西市| 上蔡县| 通化县| 吉安市| 安义县| 贵南县| 绥中县| 庆安县|