蓝桥杯练习系统

基础练习 十六进制转八进制

#include<iostream>
using namespace std;

string cal(string input);

int main
{
	int n;
	cin>>n;
	
	string input;
	
	string output[10];
	
	int j=0;
	for(int i=0;i<n;i++)
	{
		cin>>input;
		output[j++]=cal(input);
	}
	
	for(int i=0;i<n;i++)
		cout<<output[i]<<endl;
	
	return 0;
}


string cal(string input)
{//16转8 
	
	string tow,eight;
	//16先转2
	for(int i=0;i<input.length();i++)
	{
		switch(input[i])
		{
			case '0':tow+="0000";break;
				case '1':tow+="0001";break;
				case '2':tow+="0010";break;
				case '3':tow+="0011";break;
				case '4':tow+="0100";break;
				case '5':tow+="0101";break;
				case '6':tow+="0110";break;
				case '7':tow+="0111";break;
				case '8':tow+="1000";break;
				case '9':tow+="1001";break;
				case 'A':tow+="1010";break;
				case 'B':tow+="1011";break;
				case 'C':tow+="1100";break;
				case 'D':tow+="1101";break;
				case 'E':tow+="1110";break;
				case 'F':tow+="1111";break;
				default:break;
		}
	 } 
	
	//2转8
	if(tow.length()%3==1)
		tow="00"+tow;
	if(tow.length()%3==2)
		tow="0"+tow;
	
	for(int j=0; j<tow.length(); j+=3)
	{
		eight+=(tow[j]-'0')*4+(tow[j+1]-'0')*2+tow[j+2];
	}
	return eight;
}

基础练习 十六进制转十进制

#include<iostream>
#include<string>
#include<cmath>
using namespace std;

int main()
{
	string input;
	cin >> input;
	
	long long int sum=0; 
	int len=input.length();
	for(int i=0;i<len;i++)
	{
		if(input[i]>='0'&&input[i]<='9')
			sum+=(input[i]-'0')*pow(16,len-i-1);
			
		else
			sum+=(input[i]-'A'+10)*pow(16,len-i-1);
	}
	
	cout << sum << endl;

	return 0;
}

基础练习 十进制转十六进制

#include<iostream>
#include<algorithm>
using namespace std;

int main()
{
	long long int n;
	cin >> n;
	
	//10转16直接除余即可

	char str[10], a[16] = { '0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F' };
	int i = 0;

	if (n == 0)
		cout << "0" << endl;
	else
	{
		while (n)
		{
			str[i++] = a[n % 16];
			n /= 16;
		}
	}

	reverse(str, str + i);

	for (int j =0;j<i;j++)
		cout << str[j];

	return 0;
}

试题 基础练习 特殊回文数

#include<iostream>
using namespace std;
bool f1(int n)
{//判断是否是回文 
	char a[10];
	int i=0;
	while(n)
	{
		a[i++]=n%10;
		n/=10;
	}
	for(int j=0;j<i/2;j++)
	{
		if(a[j]!=a[i-j-1])
			return false;
	}
	return true;
}
int f2(int n)
{//计算各位之和 
	int sum=0;
	while(n)
	{
		sum+=n%10;
		n/=10;
	}
	return sum;
}
int main()
{
	int n;
	cin>>n;
	for(int i=10000;i<1000000;i++)
	{
		if(f1(i) && f2(i)==n)
			cout<<i<<endl;
	}
	return 0;
}

试题 基础练习 回文数

#include<iostream>
using namespace std;

bool f1(int n)
{//判断是否是回文 
	char a[10];
	int i=0;
	while(n)
	{
		a[i++]=n%10;
		n/=10;
	}
	for(int j=0;j<i/2;j++)
	{
		if(a[j]!=a[i-j-1])
			return false;
	}
	return true;
}

int main()
{
	for(int i=1000;i<10000;i++)
	{
		if(f1(i))
			cout<<i<<endl;
	}
	return 0;
}

试题 基础练习 特殊的数字

#include<iostream>
using namespace std;

int f(int n)
{//求这个数的各位立方和 
	int a=n%10;
	n/=10;
	int b=n%10;
	n/=10;
	int c=n%10;
	
	int sum=a*a*a+b*b*b+c*c*c;
	return sum;
	 
}
int main()
{
	for(int i=100;i<1000;i++)
	{
		if(i==f(i))
			cout<<i<<endl;
	}
	return 0;
 } 

试题 基础练习 杨辉三角形

#include<iostream>
using namespace std;

int main()
{
	int n;
	cin>>n;
	
	int a[34][34];
	for(int i=0;i<n;i++)
	{
		for(int j=0;j<n;j++)
		{
			if(i==0||j==0||i==j) a[i][j]=1;
			else
			{
				a[i][j]=a[i-1][j]+a[i-1][j-1];
			}
		}
	}
	
	for(int i=0;i<n;i++)
	{
		for(int j=0;j<=i;j++)
		{
			cout<<a[i][j]<<" ";
		}
		cout<<endl;
	}
	
	return 0;
}

试题 基础练习 查找整数

#include<iostream>
using namespace std;

int main()
{
	int n;
	int t;
	int a;
	
	
	int num[10000]={0};
		
	cin>>n;
	for(int i=0;i<n;i++)
	{
		cin>>t;
		if(num[t]==0) num[t]=i+1;
	}
	cin>>a;
	
	if(num[a]==0) cout<<"-1"<<endl;
	else cout<<num[a]<<endl;
	
	
	return 0;
}

试题 基础练习 数列特征

#include<iostream>
using namespace std;

int main()
{
	int n;
	int num;
	
	cin>>n;
	int max=-1,min=999,sum=0;
	for(int i=0;i<n;i++)
	{
		cin>>num;
		if(num>max) max=num;
		if(num<min) min=num;
		sum+=num;
	}
	
	cout<<max<<endl<<min<<endl<<sum<<endl;
	
	return 0;
}

试题 基础练习 数列特征

#include<iostream>
using namespace std;

int main()
{
	int n,m;
	cin>>n>>m;
	
	for(int i=0;i<n;i++)
	{
		for(int j=0;j<m;j++)
		{
			if(i<j) 
			{	
				char t1=('A'+j-i);	
				cout<<t1;
			}
			else if(i==j) cout<<"A";
			else 
			{
				char t2=('A'+i-j);
				cout<<t2;
			}
		}
		cout<<endl;
	}
	
	return 0;
}

试题 基础练习 01字串

#include<iostream>
#include<algorithm>
#include<cstring> 
using namespace std;

void f(int i)
{
	int a[5] = { 0 };
	int k = 0;
	while (i)
	{
		a[k++] = i % 2;
		i /= 2;
	}
	reverse(a, a + 5);

	for (int j = 0; j < 5; j++)
	{
		cout << a[j];
	}
}
int main()
{
	int i = 0;
	for (i = 0; i <32; i++)
	{
		f(i);
		cout << endl;
	}
	return 0;
}

试题 基础练习 闰年判断

#include<iostream>
using namespace std;

int main()
{
	int y;
	cin>>y;
	if((y%4==0&&y%100!=0)||(y%400==0))
		cout<<"yes";
	else cout<<"no";
	
	return 0;
}

试题 基础练习 圆的面积.

#include<iostream>
using namespace std;


int main()
{
	int r;
	double pi=3.14159265358979323;
	
	cin>>r;
	printf("%.7f",pi*r*r);
	return 0;
}

试题 基础练习 序列求和

#include<iostream>
using namespace std;

int main()
{
	long long n;
	cin>>n;
	
	long long sum=((1+n)*n)/2;
	cout<<sum<<endl;
	
	return 0;
 } 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值