蓝桥 基础练习 合集2 C++

试题 基础练习 字母图形

问题描述 利用字母可以组成一些美丽的图形,下面给出了一个例子:

ABCDEFG

BABCDEF

CBABCDE

DCBABCD

EDCBABC

这是一个5行7列的图形,请找出这个图形的规律,并输出一个n行m列的图形。

输入格式 输入一行,包含两个整数n和m,分别表示你要输出的图形的行数的列数。 输出格式 输出n行,每个m个字符,为你的图形。 样例输入 5
7 样例输出 ABCDEFG BABCDEF CBABCDE DCBABCD EDCBABC 数据规模与约定 1 <= n, m <=
26。

找规律嘛,用abs挺方便的这题

#include
#include
#include
int main()
{
	int n,m,i,j;
	//tan[0]=1;
	scanf("%d%d",&n,&m);
	for(i=0;i<n;i++)
	{
		for(j=0;j<m;j++)
		{
			printf("%c",abs(i-j)+'A');
		}
		printf("\n");
	}
	
	system("pause");
	return 0;
}

试题 基础练习 01字串

问题描述 对于长度为5位的一个01串,每一位都可能是0或1,一共有32种可能。它们的前几个是:

00000

00001

00010

00011

00100

请按从小到大的顺序输出这32种01串。

输入格式 本试题没有输入。 输出格式 输出32行,按从小到大的顺序每行一个长度为5的01串。 样例输出 00000 00001 00010
00011 <以下部分省略>

二进制偷大懒

#include
#include
#include
int main()
{
	int i,j,now[5],x;
	//tan[0]=1;
	for(i=0;i<32;i++)
	{
		x=i;
		for(j=0;j<5;j++)
		{
			now[j]=x%2;
			x/=2;
		}
		for(j=4;j>=0;j--)
		{
			printf("%d",now[j]);
		}
		printf("\n");
	}
	
	system("pause");
	return 0;
}

试题 基础练习 Fibonacci数列

问题描述 Fibonacci数列的递推公式为:Fn=Fn-1+Fn-2,其中F1=F2=1。

当n比较大时,Fn也非常大,现在我们想知道,Fn除以10007的余数是多少。

输入格式 输入包含一个整数n。 输出格式 输出一行,包含一个整数,表示Fn除以10007的余数。
说明:在本题中,答案是要求Fn除以10007的余数,因此我们只要能算出这个余数即可,而不需要先计算出Fn的准确值,再将计算的结果除以10007取余数,直接计算余数往往比先算出原数再取余简单。

样例输入 10 样例输出 55 样例输入 22 样例输出 7704 数据规模与约定 1 <= n <= 1,000,000。

递归,buxing
动脑子,替换,xing!

#include
#include
int main()
{
	int pp,p,t,i,n,k;
	pp=0;
	p=1;
	t=1;
	scanf("%d",&n);
	for(i=1;i<n;i++)
	{
		t=(pp+p)%10007;
		k=t;
		pp=p;
		p=k;
	}
	printf("%d",t);
	system("pause");
	return 0;
}

试题 基础练习 阶乘计算

问题描述   输入一个正整数n,输出n!的值。   其中n!=123*…*n。 算法描述
  n!可能很大,而计算机能表示的整数范围有限,需要使用高精度计算的方法。使用一个数组A来表示一个大整数a,A[0]表示a的个位,A[1]表示a的十位,依次类推。
  将a乘以一个整数k变为将数组A的每一个元素都乘以k,请注意处理相应的进位。
  首先将a设为1,然后乘2,乘3,当乘到n时,即得到了n!的值。 输入格式   输入包含一个正整数n,n<=1000。 输出格式
  输出n!的准确值。 样例输入 10 样例输出 3628800

没想到以前我的进位写的更好一点…
取到wei-1 和还要进位,就位数加一,正好还能进for循环,还挺不错的

#include
#include
int main()

{
	int x,wei=1,i,j,push=0;
	int jie[10001];
	scanf("%d",&x);
	jie[0]=1;
	for(i=0;i<x;i++)
	{
		for(j=0;j<wei;j++)
		{
			jie[j]=jie[j]*(i+1)+push;
			push=jie[j]/10;
			jie[j]%=10;
			if(j==wei-1&&push!=0)
			{
				wei++;
				jie[wei-1]=0;
			}
		}
	}
	for(i=wei-1;i>=0;i--)
		printf("%d",jie[i]);
	system("pause");
	return 0;

}

鉴于蓝桥官方崩溃了,先写到这

你可能感兴趣的:(蓝桥,c++,蓝桥杯)