工联部第三次考核

第一题
思路:当第一次跳一级时还有f(n-1)种请款,当第一次跳两级时有f(n-2)种情况;类似于斐波拉契数列f(n)=f(n-1)+f(n-2);
知识点:函数的循环和范围
问题:该题目第一次输入为0,结果为0不为1

#include <stdio.h>
int  fibonacci(int n)
{
    
    
	int num1=1,num2=1,num3=0,i=0,num4=0;
	if(n<=1){
    
    
		return num1;
	}
	for(i=1;i<n;i++){
    
    
		num3=num1+num2;
		num1=num2;
		num2=num3;
	}
	return num3;
}
int main()
{
    
    
	int num,ret=0;
	scanf("%d",&num);
	ret=fibonacci(num);
	printf("%d",ret);
	return 0;
}

在这里插入图片描述

第二题
思路:先以1 2 3
4 5 6
7 8 9为例,顺时针螺旋顺序为往右3位,下2位,左2位,上1位,右1位,发现他的顺序为水平位移一位一位减少,竖直位移也减少,则循环4次,后依次循环

知识点:二维数组的运用,还有要细心,方向容易搞错
#include <stdio.h>
int main(){
    
    
	int  matrix[100][100];
	int m,n;
	scanf("%d%d",&m,&n);
	
	for(int i=0;i<m;++i){
    
    
		for(int j=0;j<n;++j){
    
    
		scanf("%d",& matrix[i][j]);
	}
	} 
	int a=0,b=m-1,right=n-1,left=0;
	int i=0,j=0;
	while(1){
    
    
	for(i=a,j=left;j<=right;++j){
    
    
		printf("%d", matrix[i][j]); 
	}
	++a;
	for(i=a,j=right;i<=b;++i){
    
    
		printf("%d", matrix[i][j]);
	}
	--right;
	for(i=b,j=right;j>=left;--j){
    
    
			printf("%d", matrix[i][j]);
	} 
	--b;
	for(i=b,j=left;i>=a;--i){
    
    
			printf("%d", matrix[i][j]);
	}
	++left;
}
	return 0;
} 

在这里插入图片描述

第三题
思路:十进制整数转换为N进制整数采用“除N取余,逆序排列”法。具体做法是;
将N作为除数,用十进制整数除以N,可以得到一个商和余数;
保留余数,用商继续除以N,又得到一个新的商和余数;
仍然保留余数,用商继续除以N,还会得到一个新的商和余数;
……
如此反复进行,每次都保留余数,用商接着除以N,直到商为0时为止
把先得到的余数作为N进制数的低位数字,后得到的余数作为N进制数的高位数字,依次排列起来,就得到了N进制数字。
知识点:对于16进制,10 11 12要用A B C 等表示,取得的余数还要逆序排列

#include <stdio.h>
int main(){
    
    
	int i,j,n,m ,x; 
	char a[50];
	scanf("%d%d",&n,&m);
	if(m<10){
    
    
			x=n;
		for(i=0;x!=0;i++){
    
    
			a[i]=x%m;
		x=x/m;
	
		
	}
	for(j=i-1;j>=0;j--){
    
    
	
	printf("%d",a[j]) ;
	
	}
	}
	if(m>10)
	{
    
    
		x=n;
		for(i=0;x!=0;i++){
    
    
			if(x%m>9){
    
    
				a[i]=x%m-10+'A';
				
			}
			else{
    
    
				a[i]=x%m- 0 + '0';
			}
				x = x/ m;
			}
				for(j=i-1;j>=0;j--){
    
    
	
	printf("%c",a[j]) ;

}

}
return 0;
}

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/li3079198218/article/details/110143530