蓝桥杯-BASIC题 (持续更新)

来源:互联网 发布:淘宝店快递发货流程 编辑:程序博客网 时间:2024/06/05 15:06

BASIC-13 基础练习 数列排序  

问题描述
  给定一个长度为n的数列,将这个数列按从小到大的顺序排列。1<=n<=200
输入格式
  第一行为一个整数n。
  第二行包含n个整数,为待排序的数,每个整数的绝对值小于10000。
输出格式
  输出一行,按从小到大的顺序输出排序后的数列。
样例输入
5
8 3 6 4 9
样例输出
3 4 6 8 9


TIP:普通的排序,冒泡。。冒泡本身就是个较低效率的排序方式,难以改进,如果想要更快需要考虑使用其他排序算法吐舌头




BASIC-13基础练习 特殊回文数 

问题描述
  123321是一个非常特殊的数,它从左边读和从右边读是一样的。
  输入一个正整数n, 编程求所有这样的五位和六位十进制数,满足各位数字之和等于n 。
输入格式
  输入一行,包含一个正整数n。
输出格式
  按从小到大的顺序输出满足条件的整数,每个整数占一行。
样例输入
52
样例输出
899998
989989
998899
数据规模和约定
  1<=n<=54。

TIP:定义6个变量分别存储6位上的数字,穷举法循环遍历。需要注意的一点是需要先遍历10000--99999的五位数的情况再遍历六位数的情况。

#include<iostream>using namespace std;int main(){int n;int a,b,c,d,e,f;long i;cin>>n;    for(i=10000;i<=99999;i++){ b=i/10000%10;c=i/1000%10;d=i/100%10;e=i/10%10;f=i%10;if((b==f&&c==e)&&b+c+d+e+f==n)  cout<<i<<endl;}for(i=100000;i<=999999;i++){a=i/100000;b=i/10000%10;c=i/1000%10;d=i/100%10;e=i/10%10;f=i%10;if((a==f && b==e && c==d)&&(a+b+c+d+e+f==n))  cout<<i<<endl;}return 0; } 

0 0