
大学生比赛真题
蓝桥杯,天梯赛,ACM,CCPC真题
iamzxf
做有意义的事情......
展开
-
题库批量处理心得
利用excel处理a.txt,提取in文件夹和out文件夹,利用excel生成修改命令ren,共80000多条数据。问题描述:从网上扒了一堆ABC的数据,给的文件扩展名是TXT,需要根据需要修改为.in/.ans/.out格式。处理方法:dir显示文件,带目录的用/b,子文件夹/s,管道命令>>a.txt。小问题是ren修改时,后面的文件夹名字不能带空格,费了点周折,其他还好。原创 2023-08-11 10:43:50 · 232 阅读 · 0 评论 -
半数单集问题
问题描述:给定一个自然数n,由n开始可以依次产生半数集set(n)中的数如下: (1)set(n)中包含n; (2)在n的左边加上一个自然数,但该自然数不能超过最近添加的数的一半; (3)按此规则进行处理,直至不能添加自然数为止。 例如,set(6)={6,16,26,126,36,136}。 编程任务:对于给定的自然数n,编程计算半数集set(n原创 2013-09-10 13:09:20 · 1644 阅读 · 0 评论 -
排列的字典序问题
问题描述:n个元素共有n!个不同的排列。将这n!个元素按照字典序排列,可以从0编号,直至n!-1。例如,当n=3时,6个不同排列的字典序值为: 0 1 2 3 4 5 123 132 213 231 312 321 编程任务:给定n以及n个元素的一个排列,计算出这个排列的字典序值;给定一个字典原创 2013-09-10 13:15:37 · 1746 阅读 · 0 评论 -
集合划分问题
问题描述:给定含有n个元素的集合{1,2,...,n},可以将其划分为若干非空子集。例如,当n=4时,集合{1,2,3,4}可以构造15个不同的划分,如下。 {{1},{2},{3},{4}} {{1234}} {{1},{234}};{{2},{134}};{{3},{124}};{{4},{123}} {{12},{34}};{{13},{24}};{{原创 2013-09-11 08:34:17 · 1764 阅读 · 0 评论 -
标准二维表问题
问题描述: 设n是一个正整数。2*n的标准二维表是由正整数1,2,…,2n组成的2*n数组,该数组的每行从左到右递增,每列从上到下递增。2*n的标准二维表全体记为tab(n)。例如,当n=3时,tab(3)二维表如下图所示。1234561原创 2013-09-13 10:03:52 · 2385 阅读 · 1 评论 -
整数因子分解问题
问题描述: 大于1的正整数n可以分解为n=x1*x2*…*xn。例如,当n=12时,共有以下8种分解方法: 12=12 12=6*2 12=4*3 12=3*4 12=3*2*2 12=2*6 12=2*3*2 12=2*2*3 编程任务: 给定正整数n,试计算n有多少种不同的分解模式。原创 2013-09-13 10:06:09 · 1403 阅读 · 0 评论 -
最大子段和问题
问题描述: 给定一个数组a[n](其中可能有负数),求下标i和j,使a[i]+a[i+1]+…+a[j]最大。规定:如果所有数均是负数时,其最大子段和为0。编程思路: 这里介绍几种不同的思路来求解,分别如下:(1)常规思路 对所有可能的情况进行遍历,找到最优解,参考代码如下:#include #define n 6void mai原创 2013-10-22 12:43:36 · 1497 阅读 · 0 评论 -
花朵数问题
一个N位的十进制正整数,如果它的每个位上的数字的N次方的和等于这个数本身,则称其为花朵数。例如: 当N=3时,153就满足条件,因为 1^3 + 5^3 + 3^3 = 153,这样的数字也被称为水仙花数(其中,“^”表示乘方,5^3表示5的3次方,也就是立方)。 当N=4时,1634满足条件,因为 1^4 + 6^4 + 3^4 + 4^4 = 1634。 当N原创 2013-11-06 12:24:20 · 1125 阅读 · 0 评论 -
螺旋矩阵
下面是一个5×5的螺旋方阵,试编程打印出此形式的n×n(n1 2 3 4 516 17 18 19 615 24 25 20 714 23 22 21 813 12 11 10 9 #include#define N 5//螺旋矩阵int main(){ int count,i,j; int d原创 2013-11-21 10:58:42 · 1375 阅读 · 0 评论 -
数组循环输出
给一维数组输入任意n(n5 7 4 8 9 11 5 7 4 8 99 1 5 7 4 88 9 1 5 7 44 8 9 1 5 77 4 8 9 1 5 #includeint main(){ int array[6]={7,4,8,9,1,5}; int i,j; fo原创 2013-11-21 11:03:42 · 1548 阅读 · 0 评论 -
数的进制转换
输入一个十进制正整数,将该数转换成n进制数。 #include//输入一个十进制正整数,将该数转换成n进制数int main(){ int num,i,n,count=0; int digit[100]={0}; printf("please input the number:"); scanf("%d",&num); printf("print原创 2013-11-21 10:28:24 · 1262 阅读 · 1 评论 -
13年蓝桥杯校内选拔赛B组试题
14年蓝桥杯程序设计大赛C语言B组测试题原创 2013-11-25 13:04:11 · 2266 阅读 · 0 评论 -
运动员打靶问题
射击运动员m发打中n环有多少种可能,编写程序计算出来,并显示出结果,0环和10环均有效。原创 2013-11-06 12:20:41 · 1398 阅读 · 0 评论 -
直角三角形的边问题
在直角三角形中,两个直角边的平方和等于斜边的平方,也就是非常著名的“勾股定理”,那么这100以内的数字中,就存在着这样的一些数,比如:3,4,5,3的平方加上4的平方等于5的平方,这三个数就可以组成一个直角三角形。 现在我们要求出这些数(要求相同度数的直角三角形的三条边使用最小值,比如:6,8,10就要变成3,4,5)。原创 2013-11-06 12:19:13 · 1501 阅读 · 0 评论 -
角谷猜想
日本一位中学生发现一个奇妙的“定理”,请角谷教授证明,而教授无能为力,于是产生角谷猜想。 猜想的内容是:任给一个自然数,若为偶数除以2,若为奇数则乘3加1,得到一个新的自然数后按照上面的法则继续演算,若干次后得到的结果必然为1。 判断给定的一个自然数,若为偶数除以2,若为奇数则乘3加1,得到一个新的自然数后按照上面的法则继续演算,一直到结果变为1,并且将每一步的运算过程和得到的新的自然数显示出原创 2013-11-06 12:21:40 · 5401 阅读 · 0 评论 -
无限循环小数
使用数组精确计算M/N(0<M<N<=100)的值。如果M/N是无限循环小数,则计算并输出它的第一循环节,同时要求输出循环节的起止位置(小数位的序号)。原创 2013-11-06 12:23:03 · 5826 阅读 · 0 评论 -
求满足如下条件的五位数字
判断满足下列条件的五位数字,将它们输出,并统计它们的个数。 (1)最高两位可以被6整除; (2)最低两位可以被6整除; (3)百位也可以被6整除; #include void main(){ int low, mid, high; int count=0; int num; for(num=10000;num<100000;nu原创 2013-11-12 11:21:55 · 1238 阅读 · 0 评论 -
求满足条件的回文数字
观察数字:12321,123321 都有一个共同的特征,无论从左到右读还是从右向左读,都是相同的。这样的数字叫做回文数字。 本题要求你找到一些5位或6位的十进制数字。满足如下要求: 该数字的各个数位之和等于输入的整数。 【输入格式】 一个正整数 n(10【输出格式】 若干行,每行包含一个满足要求的5位或6位整数。原创 2013-11-26 10:20:29 · 1194 阅读 · 0 评论 -
数字游戏
栋栋正在和同学们玩一个数字游戏。 游戏的规则是这样的:栋栋和同学们一共n个人围坐在一圈。栋栋首先说出数字1。接下来,坐在栋栋左手边的同学要说下一个数字2。再下面的一个同学要从上一个同学说的数字往下数两个数说出来,也就是说4。下一个同学要往下数三个数,说7。依次类推。 为了使数字不至于太大,栋栋和同学们约定,当在心中数到 k 时,下一个数字重新从1开始数。例如,当k=原创 2013-11-26 11:07:22 · 1123 阅读 · 0 评论 -
大小之差
题目标题: 大小之差 某6位数,只包含1~9中的某些数字(可以重复包含同一数字,但不含数字0)。 该数字重新排列数位后,可以得到最大数和最小数。最大最小之差也是6位数,并且它恰好包含了组成原6位数同样的数字。 比如:766431 - 134667 = 631764 就是具有这样特征的数字。 你还能找到另一个这样的6位数吗?原创 2013-11-26 10:52:37 · 869 阅读 · 0 评论 -
十六进制转换为十进制
编写函数,输入一个十六进制数,输出相应的十进制数。#include #include #include #include int main(){ char str[100]; int number=0; int i; scanf("%s", str); //预处理,将小写字母变成大写字母 for(i=0;i<strlen(str);i++) { if (str原创 2013-12-17 08:38:56 · 2382 阅读 · 0 评论 -
统计个位数字相同的数的个数
随机产生100个[0,99]之间的整数,编写函数统计个位数上的数字分别是0、1、2、3、4、5、6、7、8、9的个数并输出。#include #include #include int main(){ int array[100]; int number[10]; int i; for(i=0;i<10;i++) number[i]=0; srand(time原创 2013-12-17 08:32:46 · 2089 阅读 · 0 评论 -
转圈数数淘汰
有n个人围成一圈,顺序编号,从第一个人开始报数,凡报到3的人出圈,编写程序,问最后留下的是原来第几号的那位?#include #include #include #include int main(){ int n,i,count,index,begin; int *p; scanf("%d",&n); p=(int *)malloc(n*sizeof(int));原创 2013-12-17 09:00:25 · 1310 阅读 · 0 评论 -
哥德巴赫猜想
设计一个函数,验证哥德巴赫猜想(任意一个大于等于6的偶数都可以分解为两个素数之和)。要求偶数从main函数中输入。#include int judge(int); //判断一个数是否为素数void divide(int); //将一个数分解为两个素数int main(){ int number; scanf("%d", &number); while(number%2!原创 2013-12-17 08:31:22 · 2281 阅读 · 0 评论 -
字符串排序
从主函数输入十个不等长的字符串,编写函数,对这些串进行排序,在主调函数中输出排好序的串。#include #include #include #include int sort(char *ps[],int n);int main(){ char str[10][100]; //={"hello","yantai","shandong","weifang","universi原创 2013-12-17 09:09:27 · 834 阅读 · 0 评论 -
数组操作
输入n个整数,编写函数实现以下操作,要求用指针实现: ① 对n个数进行排序; ② 将从指定位置的m个数逆序存放;例如:原序列为2,4,6,8,10,12,14,16,18,20,若要求把从第4个数开始的5个数按逆序重新排列,则得到的新数列为2,4,6,16,14,12,10,8,18,20)。 ③ 输出这组数。#include #include #includ原创 2013-12-17 09:53:45 · 1344 阅读 · 0 评论 -
统计最长的单词
写一个函数,输入一行字符,将此字符串中最长的单词输出。#include #include #include #include int main(){ char str[1000]; int i,maxLength, length; char maxStr[100], tempStr[100]; gets(str); i=0; maxLength=0; whil原创 2013-12-17 08:34:51 · 1058 阅读 · 0 评论 -
递归逆向输出字符串
输入一个字符串,编写递归函数将字符串按相反的顺序输出。#include #include #include #include int reverse(char *str, int start, int end);int main(){ char str[100]; gets(str); reverse(str,0,strlen(str)-1); printf("\n"原创 2013-12-17 08:35:52 · 1849 阅读 · 0 评论 -
最长公共子序列
动态规划法求解,标准的C语言,可以求出其中一个原创 2014-10-23 08:23:59 · 1375 阅读 · 0 评论 -
螺旋矩阵
下面是一个5×5的螺旋方阵,试编程打印出此形式的n×n(n 1 2 3 4 5 16 17 18 19 6 15 24 25 20 7 14 23 22 21 8 13 12 11 10 9原创 2014-11-10 16:27:58 · 1489 阅读 · 0 评论 -
魔方矩阵
输入一奇数,要求产生对应的二维矩阵。原创 2014-11-10 17:09:01 · 5001 阅读 · 0 评论 -
C语言实现万年历程序
C语言实现万年历程序#include int year(int y){ if ((y%4==0) && (y%100!=0) || y%400==0) return 366; else return 365;}int main(){ int y; int i,j,sum=0; int begin,week; int days[12]={31,28,31,30原创 2014-10-26 11:30:51 · 50699 阅读 · 13 评论 -
最优装载问题
问题描述:给定一艘容量为C的船,给定一批w原创 2014-11-02 23:32:22 · 3201 阅读 · 0 评论 -
批处理作业调度问题
给定n个作业的集合J={J1,J2,…,Jn}。每一个作业有两项任务分别在两台机器上完成。每个作业必须先由机器1处理,再由机器2处理。作业Ji需要机器j的处理时间为tji,i=1,2,…n,j=1,2。对于一个确定的作业调度,设Fji是作业i在机器j上完成处理的时间。则所有作业在机器2上完成处理的时间和f=F21+F22+…+F2n称为该作业调度的完成时间和。 批处理作业调度问题要求,对原创 2014-11-12 15:06:22 · 3204 阅读 · 0 评论 -
用数组实现大数加法
当数字足够大的时间,用数组实现大数的原创 2014-11-13 12:17:09 · 3599 阅读 · 1 评论 -
判断数字是多少位数,正向反向输出
#include int main(){ int n,m,temp=1; int count=0; int i; scanf("%d",&n); m=n; while(m!=0) { m=m/10; count=count+1; } printf("%d is one %d-bit number.\n",n,count); m=n; for(i=1;原创 2014-10-27 18:22:12 · 1803 阅读 · 1 评论 -
n后问题
在n*n的棋盘上放置彼此不受攻击的n个皇后,按照国际象棋的规则,皇后可以攻击与之处在同一行或同一列或同一斜线上的棋子。n后问题等价于在n*n格的棋盘上放置n个皇后,任何2个皇后不放在同一行或同一列或同一斜线上。原创 2014-11-12 15:34:14 · 2065 阅读 · 0 评论 -
匪警请拨110
匪警请拨110,即使手机欠费也可拨通! 为了保障社会秩序,保护人民群众生命财产安全,警察叔叔需要与罪犯斗智斗勇,因而需要经常性地进行体力训练和智力训练! 某批警察叔叔正在进行智力训练: 12 3 4 5 6 7 8 9 = 110; 请看上边的算式,为了使等式成立,需要在数字间填入加号或者减号(可以不填,但不能填入其它符号)。之间没有填入符号的数字组合成一个原创 2014-11-14 20:41:43 · 2423 阅读 · 1 评论 -
6174
任意给一个四位数(各位数不完全相同),四个数组成一个最大数和一个最小数,他们的差又能组成一个最大数和一个最小数,--------直到某一步得到的差将会出现循环重复。写一个程序统计所有满足以上条件的四位数。(黑洞数,经过不到7步,都可以到达6174)例如:3100 ― 0013 = 3087 8730 ― 0378 = 8352 8532 ― 2358 = 6174原创 2014-11-14 20:43:25 · 2615 阅读 · 1 评论 -
循环小数
使用数组精确计算M/N(0<M<N<=100)的值。如果M/N是无限循环小数,则计算并输出它的第一循环节,同时要求输出循环节的起止位置(小数位的序号)。原创 2014-11-14 20:46:52 · 1492 阅读 · 0 评论